DEV Community

Luiz Bernardo
Luiz Bernardo

Posted on

Rebase vs Merge

Rebasing e mesclagem são projetados para integrar as alterações de um branch em outro, mas de maneiras diferentes.

Por ex. digamos que temos commits como abaixo, o merge resultará como uma combinação de commits, enquanto o rebase adicionará todas as mudanças no branch de recurso a partir do último commit do branch master:

git rebase vs marge

  • Quando você rebase um branch de recurso no master, você move a base do branch de recurso para o ponto final do branch master.
  • O marge pega o conteúdo da ramificação do recurso e o integra à ramificação mestre. Como resultado, apenas o branch master é alterado. O histórico de ramificações de recursos permanece o mesmo.
  • A marge adiciona um novo compromisso ao seu histórico.

As confirmações serão semelhantes a:

gitflow

Quando rebase? Quando marge?

Se o branch de recurso do qual você está obtendo mudanças for compartilhado com outros desenvolvedores, o rebase não é recomendado, porque o processo de rebase criará repositórios inconsistentes. Para indivíduos, o rebasing faz muito sentido.

Se você quiser ver o histórico completamente igual ao que aconteceu, você deve usar marge. Merge preserva o histórico enquanto rebase o reescreve.

Rebase é melhor para agilizar um histórico complexo, você pode alterar o histórico de commits por rebase interativo . Você pode remover commits indesejados, esmagar dois ou mais commits em um ou editar a mensagem de commit.

Rebase apresentará conflitos, um commit por vez, enquanto que merge os apresentará todos de uma vez. É melhor e muito mais fácil lidar com os conflitos, mas você não deve esquecer que reverter um rebase é muito mais difícil do que reverter uma fusão se houver muitos conflitos.

Top comments (0)