Cómo saber si una fusión está en curso en git

Uso un script para administrar mi process de desarrollo. Algunas veces necesito saber si hay una fusión pendiente.

Utilizo para usar "git ls-files –unmerged", pero no funciona cuando los conflictos se han resuelto y los files no fusionados se han agregado al índice.

En ese caso, ¿hay alguna manera de saber si una fusión está en curso?

Gracias.

Desde un script: fíjate si existe .git/MERGE_HEAD (así es como __git_ps1 hace).


Manualmente, dejo que el estado de repos se muestre en mi post.

__git_ps1 tiene características muy útiles. Además de mostrarle su estado actual de twig, estado, índice y sucursal de seguimiento remoto en su línea de command, le indica si tiene una fusión en curso.

Puedes encontrar una instrucción allí .

En resumen, descargue git-prompt.sh , colóquelo en su PATH , __git_ps1 en su ~/.bashrc , use __git_ps1 en su PS1 en ~/.bashrc .

Lea el comentario en la parte superior de git-prompt.sh para get características adicionales.

Un ejemplo:

 gauthier@sobel:~/tmp/sigrt_val (master *) $ 

(muestra el master twig actual, y tengo cambios locales * )

Otro ejemplo con una combinación conflictiva:

 gauthier@sobel:~/tmp/sigrt_val (two) $ git merge one Auto-merging test.c CONFLICT (content): Merge conflict in test.c Automatic merge failed; fix conflicts and then commit the result. gauthier@sobel:~/tmp/sigrt_val (two *+|MERGING) $ 

( * para cambios locales, + para files en etapas, |MERGING para actualmente en una fusión sin terminar)

Si se encuentra en medio de una fusión no rápida que tiene conflictos, entonces el git status solo puede informarle sobre su estado actual.

Desde el sitio:

 $ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") 

Si terminaste los conflictos, es probable que veas un post como este:

 $ git status On branch master All conflicts fixed but you are still merging. (use "git commit" to conclude merge) 

La __git_ps1 commands __git_ps1 es una conveniencia visual maravillosa, pero todavía está sobre los hombros de los metadatos estándar que se pueden encontrar en otras partes de Git.