Estou desenvolvendo um novo recurso em um novo branch e, paralelamente, fiz algumas alterações em meu branch master.
É possível mesclar o branch master em meu novo branch para mantê-lo atualizado e não ter muitos conflitos de mesclagem quando o novo recurso for concluído?
Responder1
Você também podegit merge master
ougit rebase master
.
Se a filial não foi distribuída para outras pessoas, neste caso eu prefeririagit rebase.
Porque git rebase
faz com que seja como se as alterações na ramificação do recurso fossem feitas sobre as alterações na ramificação master, o que torna o gráfico de versão mais simples.
Rebase
Tomando o exemplo domanual de rebase do git, git rebase master
no ramo feature
:
A---B---C feature A'--B'--C' feature
/ --rebase--> /
D---E---F---G master D---E---F---G master
No entanto, git rebase
só é adequado quando ninguém mais está trabalhando nisso, ou haverá confusão e trabalho extra para eles, porque os antigos commits A, B, C agora são substituídos pelos novos commits A', B', C', mais F e G que não existiam antes.
O resultado real após git rebase master
o branch feature
é este:
( A---B---C ) feature@{1}
/
/ A'--B'--C' feature
/ /
D---E---F---G master
Os commits A, B, C ficam pendentes após o rebase, mas podem ser acessados por meio de git reflog feature
as feature@{1}
.
Mesclar
Se alguém puxou seu branch, ou você o empurrou para algum lugar, você deve fundi-lo, para evitar confusão e trabalho extra do outro lado. VerRecuperando-se do rebase upstream.
Este é o resultado de git merge master
in branch feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
Alternativamente, se você git merge feature
estiver em branch master
, ficaria assim:
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master