Junior — Middle
Como distinguir os comandos git rebase e git merge e quais são as suas principais diferenças?
sobes.tech IA
Resposta da IA
git merge e git rebase são dois comandos diferentes para integrar alterações de uma branch para outra, mas eles funcionam de forma diferente.
-
git merge cria um novo commit de fusão que combina a história de ambas as branches, mantendo o seu desenvolvimento paralelo. A história permanece ramificada, mostrando claramente quando e como ocorreu a fusão.
-
git rebase "reescreve" a história, movendo os seus commits locais para cima de outra branch, criando uma história linear sem commits de fusão. Isto simplifica a história, mas altera os hashes dos commits.
Principais diferenças:
- Merge mantém a história ramificada, rebase faz a história linear.
- Após um rebase, deve-se ter cuidado com branches públicos, pois a história é reescrita.
- Merge é mais simples e mais seguro para trabalho em equipa.
Exemplo:
# merge
git checkout feature
git merge main
# rebase
git checkout feature
git rebase main
No primeiro caso, aparecerá um commit de fusão, no segundo, os seus commits serão "movidos" para o topo do main.