Git se niega a fusionar historias no relacionadas en rebase

Resuelto Shubham Chaudhary asked hace 8 años • 0 respuestas

Durante git rebase origin/developmentel 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?

Shubham Chaudhary avatar Jun 21 '16 14:06 Shubham Chaudhary
Aceptado

Puede utilizar --allow-unrelated-historiespara 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-historiesopció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.

blue112 avatar Jun 21 '2016 07:06 blue112

En mi caso, el error se produjo fatal: refusing to merge unrelated historiesen 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-historiesbandera 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 pullse le ha enseñado a pasar la --allow-unrelated-historiesopción al subyacentegit merge

Adil avatar Oct 18 '2016 12:10 Adil