Tecnología · GUÍA PRÁCTICA
¿Git dice «refusing to merge unrelated histories»? Demuestra el grafo antes de usar el flag
No empieces con --allow-unrelated-histories. Verifica repositorio, remoto, commits raíz y merge-base; corrige una identidad equivocada o conserva deliberadamente dos proyectos independientes con una fusión respaldada.

El error indica que Git no encontró un ancestro común entre los dos historiales. No dice si deben unirse, si el remoto es correcto ni si un lado está incompleto.
Conserva el repositorio y demuestra la identidad: revisa ruta, remotos, raíces y merge-base. Después corrige la conexión o une dos proyectos de forma deliberada y reversible.
Congela la evidencia antes de cambiar historia
Guarda comando, ruta, status, remotos y grafo; crea una copia o rama protectora antes de reset, rebase o merge.
Identifica commits locales, archivos no rastreados y límites de secretos que deben sobrevivir.
Demuestra identidad y ascendencia
Verifica la URL remota, haz fetch de los refs y examina puntas y raíces. Descarta ruta u origin equivocados, fetch superficial o doble init.
Ejecuta git merge-base A B y revisa salida y estado. Si hay base, investiga refs/fetch; si no hay, aún falta decidir si la unión es correcta.
Decide si ambos historiales pertenecen
Si un lado es solo un README accidental o el repositorio equivocado, corrige remote/path o mueve lo previsto a un clone limpio; conserva el directorio viejo hasta verificar.
Si ambos proyectos deben conservar su historia, define estructura final, propiedad y política de conflictos; considera subtree para un subdirectorio.
Usa la fusión excepcional deliberadamente
Guarda cambios, crea una rama protectora y obtiene la punta exacta. Usa el flag solo cuando ambas raíces deban permanecer.
Revisa cada conflicto y todo el staged tree; aborta ante colisiones o exposición inesperada. El flag no valida el proyecto resultante.
Verifica y documenta
Revisa los dos padres del merge commit, ejecuta pruebas y compara el árbol final; confirma destino y protecciones antes del push.
Registra puntas originales, resultado de merge-base, backup y estrategia. Si la identidad sigue incierta, consulta al propietario.
