git · Git
El mensaje
fatal: refusing to merge unrelated histories
Qué significa
Los dos lados que intentas fusionar no comparten ningún antepasado común, así que para git son dos proyectos ajenos entre sí. Suele salir cuando empezaste en local con git init, hiciste unos commits y luego añadiste un remoto que ya tenía commits propios e hiciste pull. --allow-unrelated-histories sí los fusiona, pero suelda dos historias ajenas en un único commit y separarlas después cuesta mucho; si solo tienes unos pocos commits locales, es más limpio clonar el remoto de nuevo y copiar tus archivos dentro.
El arreglo
git pull origin main --allow-unrelated-histories- Lo imprime
- git
- Git
- 29
Casi todos los errores de git son una negativa que significa "hacer eso desde este estado perdería algo"; fatal: indica que git se detuvo sin cambiar nada, y las líneas hint: bajo la primera suelen traer el remedio real.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Qué significa «fatal: refusing to merge unrelated histories»?
Los dos lados que intentas fusionar no comparten ningún antepasado común, así que para git son dos proyectos ajenos entre sí. Suele salir cuando empezaste en local con git init, hiciste unos commits y luego añadiste un remoto que ya tenía commits propios e hiciste pull. --allow-unrelated-histories sí los fusiona, pero suelda dos historias ajenas en un único commit y separarlas después cuesta mucho; si solo tienes unos pocos commits locales, es más limpio clonar el remoto de nuevo y copiar tus archivos dentro.
Q. ¿Cómo se arregla?
git pull origin main --allow-unrelated-histories — antes de ejecutarlo, mira arriba qué descarta este comando.
Q. ¿Qué herramienta lo imprime?
git. Está en Git y el mensaje tiene 6 palabras.