Upload
suelen-goularte-carvalho
View
144
Download
0
Embed Size (px)
Citation preview
Merge
Merge é um novo commit. A principal diferença é que ele tem dois pais. Todos os outros commits tem apenas um pai. 1 2 5 6
3 4
git checkout mastergit merge feature
feature
7
master head
Merge Fast Forward
O único momento que o merge não cria um novo commit é no merge fast forward.
1 2
3 4
master
feature
git checkout mastergit merge master
head
git merge é legal por ser uma operação não destrutiva. As branchs existentes não são alteradas de forma alguma. Isso evita armadilhas potenciais causadas pelo git rebase.
Por outro lado, isso também significa que a branch terá um commit de merge toda vez que for necessário incorporar alterações de outra branch (master por exemplo).
Se master é muito ativo, isso pode poluir um pouco o histórico de commits.
1 2 5 6
7
master
git checkout featuregit rebase master
feature head
(3) (4)
8
RebaseRecria os commits de uma branch no topo da outra. Repare que são criados novos commits.
O principal benefício do git rebase é que você obtém um histórico do projeto muito mais limpo.
Primeiro, ele elimina os commits de merge desnecessários exigidos pelo git merge. Segundo, git rebase resulta em um histórico perfeitamente linear. Isso facilita a navegação no seu projeto com comandos como git log, git bissect e gitk.
Mas, reescrever o histórico de commits pode ser potencialmente catastrófico para seu fluxo de trabalho de colaboração.
Basicamente, como regra de ouro, não use git rebase em branchs compartilhadas.
Não manjo nada, colei daqui:● Mergin vs Rebasing by Atlasin● Five Agency Git Merge and Rebase simple explanation