Dicas de GIT: Integrando um Branch no Master. Rebase Ou Merge?


Se você está usando Rebase ao invés de Merge no Git, então fica uma dica importantíssima para quando você vai trabalhar com Branches.

Rebase? Que isso?

Se você não esta usando rebase, bem, aconselho seriamente a dar uma olhada no meu post que ajuda a ver a diferença entre o Rebase e o Merge: Dicas de GIT: Rebase vs Merge.



Momento delicado: Integração de um Branch no Master

Muitas vezes quando vamos implementar uma funcionalidade nova, criamos um branch novo para isso, e depois que ela está funcional juntamos esse branch de volta ao master.

Só que normalmente no meio do desenvolvimento dessa funcionalidade, aparece algo novo no master e temos que colocar isso no branch que estamos trabalhando.
E ai? Qual deve ser usado nesse caso? Rebase ou Merge?

Atualizando o Branch com commits do Master

Bem, nesse caso devemos usar o REBASE, seguindo o procedimento abaixo.

git checkout nova_funcionalidade
git rebase master

Isso vai pegar todos os commits que você fez no seu branch e coloca-los depois das alterações provenientes do master, o que deixa até bem organizado, já que todos os commits referentes a essa funcionalidade ficam juntos um do outro, facilitando depois caso você queira reverter apenas essa funcionalidade.

Juntando o Branch no Master

Antes de mais nada, devemos garantir que nosso branch com a nova funcionalidade está atualizado com o master, portanto execute os comandos mostrados anteriormente, em Atualizando o Branch com commits do Master.
Depois disso, o que devemos fazer é um MERGE, conforme será explicado a seguir.

git checkout master
git merge nova_funcionalidade

Com isso garantimos que nosso master ficará igual ao nosso branch da nova funcionalidade (que por sua vez garantimos que ele tinha todos os commits do master fazendo o rebase do master nele).

Revisão

Só para frisar, o procedimento final de quando vamos juntar um branch no master é:

git checkout nova_funcionalidade
git rebase master
git checkout master
git merge nova_funcionalidade

Espero que essas dica ajudem vocês, assim como me ajudaram também.

Abraços.

About arruda

Adoro programar, descobrir novas frameworks ágeis e suas diversas aplicações.