904 Stimmen

Was ist der einfachste Weg, um konfliktbehaftete Dateien in Git aufzulisten?

Ich brauche nur eine einfache Liste von widersprüchlich Dateien.

Gibt es etwas Einfacheres als:

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

oder:

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

Ich schätze, ich könnte ein Handy einrichten. alias dafür, fragte sich aber, wie Profis das machen. Ich würde es benutzen, um Shell-Schleifen zu schreiben, z.B. um Konflikte automatisch aufzulösen, etc. Vielleicht ersetzen Sie diese Schleife durch ein Plugin in mergetool.cmd ?

3 Stimmen

git rebase --continue listet Dateien mit Konflikten auf (falls es welche gibt)

2 Stimmen

Git-Status ist ausreichend

1 Stimmen

In einer konfliktbehafteten Merge-Sitzung zeigt "git merge --continue" die Liste der Dateien mit Konflikten an.

22voto

mda Punkte 1078
git status --short | grep "^UU "

4 Stimmen

Hinweis: Möglicherweise müssen Sie auch nach ^UA und ^UD suchen, so dass das folgende Muster vollständiger ist: "^U[UAD] "

0 Stimmen

Oder einfach ^U um alles zu erhalten, was mit U beginnt

9 Stimmen

Das ist nicht ausreichend. Die folgenden Kombinationen von konfligierenden Dateien sind möglich: DD, AU, UD, UA, DU, AA, UU

18voto

Eric Punkte 18690

Das funktioniert bei mir:

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

o

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

2 Stimmen

Zu den Konflikten können geänderte und gelöschte Dateien gehören, die von dieser Lösung nicht abgedeckt werden.

15voto

Können Sie treffen git ls-files -u in der Befehlszeile werden Dateien mit Konflikten aufgelistet

6voto

Deniz da King Punkte 360

Ich würde auch den folgenden Befehl empfehlen, wenn Sie an einem lokalen Git-Repository oder in einem Verzeichnis arbeiten, in dem patch -p1 --merge < ... angewendet wurde.

grep -rnw . -e '^<<<<<<<$'

1 Stimmen

Das kann eine gute Lösung sein, verlangsamt sich aber bei größeren Projekten.

0 Stimmen

Ich verwende den Git-Alias : cf = "! bash -c 'grep --color=always -rnw \"^<<<<<<< HEAD$\"'"

5voto

Tel Punkte 51

Wenn Sie versuchen zu committen und es Konflikte gibt, wird Git Ihnen eine Liste der aktuell ungelösten Konflikte geben... aber nicht als einfache Liste. Das ist normalerweise das, was Sie wollen, wenn Sie interaktiv arbeiten, weil die Liste kürzer wird, wenn Sie die Konflikte lösen.

2 Stimmen

"Interaktiv, weil die Liste kürzer wird, wenn man die Konflikte löst." Interessant. Ich habe für diesen Zweck immer das Mergetool verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X