Comment afficher uniquement les fichiers non fusionnés dans git après un échec de fusion

33

Lors de la fusion, certains fichiers n'ont pas pu fusionner.

git status

affiche les fusions réussies et échouées.

Comment afficher uniquement les fichiers de fusion infructueux (conflit).

Actuellement, j'utilise la commande suivante pour ce faire

 find . -name '*.cpp' -o -name '*.h' | xargs grep -l '<<<<'
Talespin_Kit
la source

Réponses:

37
git diff

Cela affichera uniquement les fusions échouées après une fusion infructueuse. Il a de nombreuses options pour configurer les informations que vous souhaitez voir. Je soupçonne que c'est l'option exacte que vous recherchez:

 git diff --name-status --diff-filter=U

Voir également http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#resolving-a-merge et http://www.kernel.org/pub/software/scm/ git / docs / git-diff.html

Matthijs P
la source
9
Si vous voulez une liste claire de fichiers sans le U précédent, vous pouvez appeler git diff --name-only --diff-filter=U. De cette façon, vous pouvez diriger la sortie, par exemple git diff --name-only --diff-filter=U | xargs subl.
JHannes
9

Essaye ça:

$ git ls-files -u
see man-git-ls-files
Amos Folarin
la source
7
git --no-pager diff --name-only --diff-filter=U

Mais comme l'objectif est le plus susceptible de modifier ces fichiers, les opérations suivantes seront parfaites:

vim $(git diff --name-only --diff-filter=U)

Merci à @JHannes d'un commentaire d'une autre réponse

jobwat
la source