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:
- 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:
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)