Git recusa-se a fundir histórias não relacionadas com o rebase

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.

Comentários (6)

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
Comentários (10)

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
Comentários (1)