O seu repositório de desenvolvimento está cheio de Merge branch 'develop' of github.com:your/repository into develop
commits? Sempre use a --rebase
sinalização que evita mesclagem desnecessária no pull-push:
git pull --rebase origin develop
Por outro lado, se você deseja mesclar o branch do recurso, use a -no-ff
sinalização para evitar o histórico de avanço rápido e obter o verdadeiro commit de mesclagem:
git merge --no-ff feature-awesome
git log --oneline
936bf9 Merge branch 'feature-awesome'
adb1b9 awesome feature
9034fd init
Agora, suponha que você mudou de ideia. Graças a --no-ff
, reverter todos os commits do recurso é tão simples como:
git revert 936bf9 -m 1
git log --oneline
15e772 Revert "Merge branch 'feature-awesome'"
936bf9 Merge branch 'feature-awesome'
adb1b9 awesome feature
9034fd init
Se você quiser mesclar o recurso novamente, terá que reverter o commit de reversão e então mesclar o branch de recurso fixo mais uma vez:
git revert 15e772
git merge feature-awesome
git log --oneline -n4
e074bc Merge branch 'feature-awesome'
f43699 Revert "Revert "Merge branch 'feature-awesome'""
3243b5 fix
15e772 Revert "Merge branch 'feature-awesome'"
Bônus: dê uma olhada no git up !