Sobes.tech
Junior — Middle

Qual é a diferença no comportamento e uso dos comandos git merge e git rebase ao integrar alterações?

sobes.tech IA

Resposta da IA

Os comandos git merge e git rebase são usados para integrar alterações de uma branch para outra, mas fazem isso de maneiras diferentes.

  • git merge cria um novo commit de fusão que combina as histórias de ambas as branches. A história é mantida como um ramo, permitindo ver quando e como a fusão ocorreu. Isso preserva o contexto do ramo, mas pode levar a uma história mais complexa.

  • git rebase transfere (reescreve) os commits da branch atual sobre outra branch, como se tivessem sido criados após os últimos commits da branch de destino. Isso torna a história mais linear e limpa, mas altera os hashes dos commits, o que pode causar problemas ao colaborar se a branch já foi publicada.

Exemplo:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Use merge se desejar manter a história de ramificação, e rebase se desejar uma história linear sem commits de fusão.