Pular para o conteúdo principal

Como Resolver: "Need to specify how to reconcile divergent branches" no Git

Esse erro aparece quando o Git detecta que os branches local e remoto divergiram. Você precisa escolher uma estratégia para reconciliá-los.

Opções de Solução

✅ 1. Usar Merge (estratégia padrão)

Cria um commit de merge para unir as alterações locais e remotas.

git pull --no-rebase

Para tornar essa opção padrão:

git config pull.rebase false

Globalmente:

git config --global pull.rebase false

🔁 2. Usar Rebase (reescreve o histórico)

Aplica os commits locais por cima dos commits remotos, criando um histórico linear.

git pull --rebase

Para tornar essa opção padrão:

git config pull.rebase true

Globalmente:

git config --global pull.rebase true

➡️ 3. Fast-Forward Only (sem divergência)

Somente faz o pull se não houver divergência.

git pull --ff-only

Para configurar como padrão:

git config pull.ff only

Globalmente:

git config --global pull.ff only

Qual escolher?

  • Merge: Se quiser manter todo o histórico (mais seguro).
  • Rebase: Para um histórico linear (mais limpo, requer mais cuidado).
  • Fast-forward only: Para quem prefere segurança e trabalha sempre com branches sincronizadas.

Exemplo Rápido

Se quiser apenas resolver rapidamente com merge:

git pull --no-rebase

Dica: Depois de escolher a estratégia ideal, configure ela como padrão no seu repositório ou globalmente.