Middle
Qual é a diferença entre rebase e merge no Git?
sobes.tech IA
Resposta da IA
Merge combina ramos criando um novo commit de fusão. Rebase move os commits de um ramo para outro, reescrevendo a história.
Merge:
- Mantém a história de alterações na sua forma original.
- Cria um novo commit.
- É mais fácil rastrear a origem das alterações.
Rebase:
- Cria uma história linear.
- Não cria um novo commit de fusão.
- Reescreve a história dos commits.
- Pode causar problemas em trabalho colaborativo se a história já foi publicada.
Comparação:
| Propriedade | Merge | Rebase |
|---|---|---|
| História | Linear com ramificações (commit de fusão) | Linear (reescreve a história) |
| Commits | Adiciona um novo commit de fusão | Move os commits existentes para um novo local |
| Acompanhamento | Mais fácil entender de onde vêm as mudanças | Pode dificultar o acompanhamento |
| Trabalho colaborativo | Recomendado para ramos publicados | Não recomendado para ramos publicados |
Exemplo de Merge:
// Alternar para o ramo de destino
git checkout main
// Mesclar o ramo feature
git merge feature
Exemplo de Rebase:
// Alternar para o ramo a ser rebaseado
git checkout feature
// Rebase do ramo feature sobre main
git rebase main