Junior — Middle
Qual é a diferença entre os comandos 'git merge' e 'git rebase' ao juntar ramos no sistema de controlo de versões Git?
sobes.tech IA
Resposta da IA
Os comandos git merge e git rebase são ambos usados para combinar alterações de um branch em outro, mas fazem isso de maneiras diferentes:
-
git merge cria um novo commit de fusão que une a história de ambos os branches, mantendo sua história paralela.
- Exemplo:
git checkout master git merge feature-branch - A história dos branches permanece ramificada, mostrando quando e quais branches foram fundidos.
- Exemplo:
-
git rebase transfere (reescreve) os commits de um branch sobre outro, criando uma história linear sem commits de fusão.
- Exemplo:
git checkout feature-branch git rebase master - É como se você começasse um branch do último commit do master, simplificando a história, mas alterando os hashes dos commits.
- Exemplo:
Quando usar:
mergeé útil para manter toda a história e quando a transparência do ramificado é importante.rebaseé útil para simplificar a história antes de fundir na branch principal, evitando commits de fusão desnecessários.
É importante lembrar que rebase altera a história, portanto, não é recomendado fazer rebase em branches públicas que já estão acessíveis a outros.