Edytuj: Oczywiście, proste, oczywiste i ponad - bezpłatna odpowiedź inżynieryjna to git status
, jako kostixnotes. Wadą tego jest to, że git status
sprawdza stan indeksu w porównaniu z kopią roboczą, która jest wolna, podczas gdy poniżej sprawdza tylko indeks, znacznie szybszą operację.
Aby uzyskać nazwy plików, które są w konflikcie, należy użyć git ls-files --unmerged
.
$ git ls-files --unmerged
100755 f50c20668c7221fa6f8beea26b7a8eb9c0ae36e4 1 path/to/conflicted_file
100755 d0f6000e67d81ad1909500a4abca6138d18139fa 2 path/to/conflicted_file
100755 4cb5ada73fbe1c314f68c905a62180c8e93af3ba 3 path/to/conflicted_file
Dla ułatwienia, mam następujących w moim pliku ~/.gitconfig
(I nie może twierdzić, kredyt, ale nie pamiętam oryginalnego źródła):
[alias]
conflicts = !git ls-files --unmerged | cut -f2 | sort -u
To daje mi:
$ git conflicts
path/to/conflicted_file
Aby wypracować liczby konfliktów w jednym pliku, to bym po prostu użyć grep
dla =======
części markera konfliktu:
$ grep -c '^=======$' path/to/conflicted_file
2
Można dodać następujące wpisy do ~/.gitconfig
jak również linii conflicts
powyżej:
[alias]
count-conflicts = !grep -c '^=======$'
count-all-conflicts = !grep -c '^=======$' $(git conflicts)
To daje:
$ git conflicts
path/to/a/conflicted_file
path/to/another/different_conflicted_file
$ git count-conflicts path/to/a/conflicted_file
2
$ git count-all-conflicts
5
Tak, ale ... czy istnieje przełącznik powodujący wyświetlanie tylko * konfliktowych plików? – shytikov
@AlexeyShytikov, nie wiem od ręki, ale z instrukcji, wygląda na to, że 'git status --short' jest w stanie zakodować status każdego pliku wymienionego za pomocą dwóch znaków - spójrz na sekcję" Krótki format ". Myślę, że możliwe jest zawinięcie wywołania do 'git status --short' w skrypcie powłoki, który 'sed' lub' grep' tylko odpowiednie bity wyjścia. – kostix
Z drugiej strony, odpowiedź @me_anddodała i tak wymaga skryptowania, więc może być bardziej logiczne, aby przyjąć jego podejście (i tym samym zaimplementować własne polecenie porcelany). – kostix