Durante o git rebase origem/desenvolvimento
a seguinte mensagem de erro é mostrada a partir de Git:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
A minha versão Git é 2.9.0. Funcionava bem na versão anterior.
Como posso continuar esta rebase permitindo histórias não relacionadas com a bandeira forçada introduzida no novo lançamento?
O comportamento padrão mudou desde Git 2.9:
"git merge" usado para permitir a fusão de dois ramos que não têm base por defeito, o que levou a uma história completamente nova de um projeto criado e depois ser puxado por um mantenedor insuspeito, o que permitiu uma história paralela desnecessária fundida na projecto existente. O comando foi ensinado não permitir isto por por defeito, com uma saída de emergência `---opção de histórico não relacionado'. para ser usado num evento raro que funde histórias de dois projectos que começaram as suas vidas de forma independente.
Veja o Git release changelog para mais informações.
Você pode utilizar `... histórias não relacionadas' para forçar a fusão a acontecer.
No meu caso, o erro foi apenas "fatal: recusando-se a fundir históricos não relacionados" em cada tentativa, especialmente o primeiro pedido de puxar após a adição remota de um repositório Git.
A utilização da bandeira "não relacionados" funcionou com um pedido de puxar desta forma:
git pull origin branchname --allow-unrelated-histories
Também lutei com isto, mas consegui encontrar uma solução.
Quando você encontrar o erro acima, basta escolher o compromisso de fusão e, em seguida, continuar o rebase:
git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue