Conceito e mecanismo
Uma branch é uma referência móvel a um commit. Dois nomes podem apontar para o mesmo commit e depois divergir. Merge integra histórias e pode criar um commit com mais de um antecessor. Se o destino já for antecessor da origem, uma atualização fast-forward pode avançar a referência sem criar um commit de merge. Rebase reaplica alterações sobre uma nova base, normalmente criando novos commits com identificadores diferentes. O efeito sobre quem já consumiu esses commits deve fazer parte da decisão.
Aplicação guiada
Antes da integração, confirma o estado local e a base de comparação. Quando surge conflito, identifica a intenção das duas alterações e reconstrói um resultado coerente. Remover marcadores não garante comportamento correto. Depois de resolver, prepara os ficheiros e segue o comando de continuação da operação concreta. Se decidires abandonar a operação, usa a opção de abort adequada, considerando que alterações locais prévias podem complicar a recuperação. Trabalha num repositório de exercício para praticar antes de aplicar numa branch partilhada.
Uma branch troca segundos por milissegundos e outra altera o timeout de 5 para 8. Escolher simplesmente um dos lados pode perder a alteração funcional ou a conversão de unidade.
Armadilhas comuns
Usar rebase numa história consumida sem coordenação; aceitar ours ou theirs sem compreender a unidade ou a regra de negócio.
Tópicos relacionados: Remotos e publicação coordenada · Reverter alterações e preservar trabalho
Resolver conflitos exige integrar intenção, além de texto.
Referência: Git: integrating histories · Git 2.56; workflow concepts compatible with modern Git 2.x