Git se niega a fusionar historias no relacionadas en rebase
Durante git rebase origin/development
el siguiente mensaje de error se muestra desde Git:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Mi versión de Git es 2.9.0. Solía funcionar bien en la versión anterior.
¿Cómo puedo continuar con este cambio de base permitiendo historiales no relacionados con el indicador forzado introducido en la nueva versión?
Puede utilizar --allow-unrelated-histories
para forzar la fusión.
La razón detrás de esto es que el comportamiento predeterminado ha cambiado desde Git 2.9:
"git merge" solía permitir la fusión de dos ramas que no tienen una base común de forma predeterminada, lo que llevó a una nueva historia de un proyecto existente creado y luego retirado por un mantenedor desprevenido, lo que permitió que una historia paralela innecesaria se fusionara con el proyecto existente. . Se le ha enseñado al comando a no permitir esto de forma predeterminada , con una
--allow-unrelated-histories
opción de trampilla de escape que se usará en un evento poco común que fusiona historias de dos proyectos que comenzaron sus vidas de forma independiente.
Consulte el registro de cambios de la versión de Git para obtener más información.
Puede encontrar más información en esta respuesta.
En mi caso, el error se produjo fatal: refusing to merge unrelated histories
en cada intento, especialmente en la primera solicitud de extracción después de agregar de forma remota un repositorio Git.
El uso de la --allow-unrelated-histories
bandera funcionó con una solicitud de extracción de esta manera:
git pull origin branchname --allow-unrelated-histories
Según las notas de la versión 2.9.0 , git pull
se le ha enseñado a pasar la --allow-unrelated-histories
opción al subyacentegit merge