Git se niega a fusionar historiales no relacionados en el rebase

Durante git rebase origin/development se muestra el siguiente mensaje de error de Git:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

Mi versión de Git es la 2.9.0. Antes funcionaba bien en la versión anterior.

¿Cómo puedo continuar este rebase permitiendo historias no relacionadas con la bandera forzada introducida en la nueva versión?

El comportamiento por defecto ha cambiado desde Git 2.9:

"git merge" solía permitir fusionar dos ramas que no tenían una base común base común por defecto, lo que hacía que se creara una nueva historia de un proyecto existente y que luego fuera sacado por un mantenedor desprevenido, lo que permitía una historia paralela innecesaria fusionada en el proyecto existente. El comando ha sido enseñado a no permitir esto por por defecto, con una opción de escape `--permitir-historias-no-relacionadas para ser usada en un raro evento que fusiona historias de dos proyectos que comenzaron su vida de forma independiente.

Vea el Git release changelog para más información.

Puede utilizar --allow-unrelated-histories para forzar la fusión.

Comentarios (6)

En mi caso, el error era simplemente fatal: refusing to merge unrelated histories en cada intento, especialmente el primer pull request después de añadir remotamente un repositorio Git.

El uso de la bandera --allow-unrelated-histories funcionó con un pull request de esta manera:

git pull origin branchname --allow-unrelated-histories
Comentarios (10)

Yo también tuve problemas con esto, pero logré encontrar una solución.

Cuando te encuentres con el error de arriba, simplemente selecciona el commit de fusión y luego continúa con el rebase:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue
Comentarios (1)