Pregunta ¿Cuál es la forma más sencilla de obtener una lista de archivos en conflicto?


Solo necesito una lista simple de archivos en conflicto.

¿Hay algo más simple que:

git ls-files -u  | cut -f 2 | sort -u

o

git ls-files -u  | awk '{print $4}' | sort | uniq

?

Creo que podría establecer un alias útil para eso, sin embargo, me preguntaba cómo lo hacen los profesionales. Lo usaría para escribir loops de shell, por ejemplo para resolver conflictos automáticamente, etc. Tal vez reemplazar ese bucle conectándose a mergetool.cmd?


508
2018-06-17 21:08


origen


Respuestas:


git diff --name-only --diff-filter=U

881
2018-06-03 23:43



Estoy tratando de responder mi pregunta:

No, no parece haber una manera más simple que la de la pregunta, fuera de caja.

Después de escribir eso demasiadas veces, simplemente pegué el más corto en un archivo ejecutable llamado 'git-conflicts', accesible para git, ahora puedo simplemente: git conflicts para obtener la lista que quería.

Actualización: como sugiere Richard, puede configurar un alias git, como alternativa al ejecutable

git config --global alias.conflicts '!git ls-files -u | cut -f 2 | sort -u'

Una ventaja de usar el ejecutable sobre el alias es que puede compartir esa secuencia de comandos con los miembros del equipo (en una parte de directorio bin del repositorio).


32
2018-06-26 21:07



git status muestra "ambos modificados" junto a los archivos que tienen conflictos en lugar de "modificado" o "nuevo archivo", etc.


17
2017-10-19 09:53



git status --short | grep "^UU "

16
2018-02-10 16:33



Aquí hay una forma infalible:

grep -H -r "<<<<<<< HEAD" /path/to/project/dir

16
2017-12-16 11:50



puedes golpear git ls-files -u en su línea de comandos, enumera los archivos con conflictos


10
2017-08-11 07:34



Esto funciona para mí:

git grep '<<<<<<< HEAD'

o

git grep '<<<<<<< HEAD' | less -N


9
2017-10-27 15:57



git diff --check mostrará la lista de archivos que contienen marcadores de conflicto, por ejemplo:

> git diff --check
index-localhost.html:85: leftover conflict marker
index-localhost.html:87: leftover conflict marker
index-localhost.html:89: leftover conflict marker
index.html:85: leftover conflict marker
index.html:87: leftover conflict marker
index.html:89: leftover conflict marker

fuente : https://ardalis.com/detect-git-conflict-markers


6
2018-03-20 11:14



Tal vez esto se haya agregado a Git, pero los archivos que aún no se han resuelto se enumeran en el mensaje de estado (estado de git) de esta manera:

#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      syssw/target/libs/makefile
#

Tenga en cuenta que esta es la sección de rutas no fusionadas.


3
2018-04-21 15:04



Si intentas comprometerte, y si hay conflictos, entonces git te dará la lista de los conflictos actualmente no resueltos ... pero no como una lista simple. Esto es generalmente lo que quiere cuando trabaja de forma interactiva porque la lista se acorta a medida que arregla los conflictos.


2
2017-08-04 07:20



Siempre acabo de usar git status.

puede agregar awk al final para obtener solo los nombres de los archivos

git status -s | grep ^U | awk '{print $2}'


0
2018-01-24 18:06