¿Cómo concluir la fusión de un archivo?


103

Después de fusionar un archivo en Git, intenté extraer el repositorio pero apareció un error:

No ha concluido su fusión. (MERGE_HEAD existe)

¿Cómo se concluye una fusión?

Respuestas:


94

Verifique el estado ( git status) de su repositorio. Todos los archivos no fusionados (después de que resuelva los conflictos usted mismo) deben agregarse ( git add), y si no hay ningún archivo sin fusionar, debegit commit


11
Pero, ¿qué pasa si todo está confirmado ( git statusmuestra un directorio de trabajo limpio) y el error anterior aún ocurre?
Marius Soutier

1
@Marius Asegúrese de ejecutar estándar git statusy no algún alias que filtra cualquier mensaje. En la versión actual, cuando ejecuta git status, le muestra un mensaje sobre lo que debe hacer para "concluir la fusión". Y si está absolutamente seguro de que tiene todo fusionado y no perderá nada, simplemente puede eliminar archivos en .git / MERGE *, que almacenan lo que ha intentado fusionar, y el mensaje de confirmación predeterminado para esa fusión
MBO

1
Gracias, eso es lo que finalmente hice, pero de alguna manera, esto parece tener errores. ¿Cómo puede existir un MERGE_HEAD si fusionaste y comprometiste todo?
Marius Soutier

2
Sí, tuve el mismo problema que Marius, hice una fusión, resolví los conflictos, pero nada que comprometer ahora (de alguna manera). Tuve que eliminar manualmente los archivos MERGE * como se sugirió.
Simon East

@johndpope power ("tnx", 100)
knagode

31

Nota y actualización:

Desde Git1.7.4 (enero de 2011), también tiene git merge --abort" git reset --merge" cuando una fusión está en curso.

Pero si desea completar la fusión, mientras que de alguna manera no queda nada por agregar, entonces un crudo rm -rf .git/MERGE*puede ser suficiente para que Git se olvide de la fusión actual.


si elimina MERGE_HEAD, ¿la confirmación resultante solo tendrá un padre, por lo que no tendrá el historial de la rama fusionada?
Jason Goemaat

@JasonGoemaat considerando que intentamos abortar la fusión, no habría un "compromiso resultante" de todos modos.
VonC


1

Si encuentra este error en SourceTree, vaya a Acciones> Resolver conflictos> Reiniciar fusión.

La versión de SourceTree utilizada es 1.6.14.0


0

Tuve el mismo error y seguí el artículo que se encuentra en Google y resuelve mi problema. No has concluido tu fusión


Un enlace a una solución siempre es bienvenido, pero agregue la información esencial a su respuesta, ya que el enlace puede estar desactualizado.
slfan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.