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.
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
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