To pytanie wymaga „numerów linii”, jeśli nie przejmujesz się numerami linii na wyjściu, zobacz to pytanie i odpowiedź .
Zasadniczo nie chcę widzieć zmienionej zawartości, tylko nazwy plików i numery linii.
To pytanie wymaga „numerów linii”, jeśli nie przejmujesz się numerami linii na wyjściu, zobacz to pytanie i odpowiedź .
Zasadniczo nie chcę widzieć zmienionej zawartości, tylko nazwy plików i numery linii.
Odpowiedzi:
Uwaga: jeśli jesteś po prostu patrząc na nazwiska zmienionych plików ( bez tych numerów linii do linii, które zostały zmienione), który jest łatwy, kliknij ten link do innej odpowiedzi tutaj .
Nie ma wbudowanej opcji do tego (i nie sądzę, że to wszystko, co przydatne, albo), ale to jest możliwe, aby zrobić to w git, z pomocą „zewnętrznym diff” skryptu.
Oto dość gówniany; od Ciebie zależy, czy naprawisz wyjście tak, jak chcesz.
Aby uzyskać szczegółowe informacje na temat „zewnętrznego diff”, zobacz opis
GIT_EXTERNAL_DIFF
na stronie podręcznika git (około linii 700, całkiem blisko końca).źródło
| grep -o '^[0-9]*'
daje tylko liczby, zakładając, że nie obchodzi cię prawa strona.--diff-filter=...
gdzie...
część jest rodzajem zmian, które chcesz zobaczyć:M
zmodyfikowane,A
dodane,D
usunięte i inne zgodnie zgit diff
dokumentacją.Tak łatwo:
Idź naprzód i różnicuj się!
źródło
git diff --name-only master..HEAD
Numery linii jak w liczbie zmienionych linii czy rzeczywiste numery linii zawierające zmiany? Jeśli chcesz liczbę zmienionych linii, użyj
git diff --stat
. To daje ci taki ekran:Nie ma opcji, aby uzyskać numery linii samych zmian.
źródło
git diff master --compact-summary
Dane wyjściowe to:
Właśnie tego potrzebujesz. Ten sam format, jak podczas dokonywania zmian lub wyciągania nowych zatwierdzeń ze zdalnego.
PS: To jest takie, że nikt nie odpowiedział w ten sposób.
źródło
1) Mój ulubiony:
Przygotowuje status pliku, np .:
2) Jeśli chcesz statystyki, to:
pokaże coś takiego:
3) Wreszcie, jeśli naprawdę chcesz tylko nazwy plików:
Po prostu pokaże:
źródło
Pokazuje nazwy plików i ilość / liczbę wierszy, które zmieniły się w każdym pliku między teraz a określonym zatwierdzeniem:
źródło
Wiem, że to stare pytanie, ale w systemie Windows filtruje dane wyjściowe git do plików i zmienia numery linii:
(git diff -p --stat) | findstr "@@ --git"
Aby wyodrębnić pliki i zmienione linie z tego, jest trochę więcej pracy:
for /f "tokens=3,4* delims=-+ " %f in ('^(git diff -p --stat .^) ^| findstr ^"@@ --git^"') do @echo %f
źródło
Dostarczane jest najczystsze wyjście, tj. Tylko nazwy plików / ścieżki
HTH
źródło
On
git version 2.17.1
, nie ma wbudowaną flagi , aby osiągnąć ten cel.Oto przykładowe polecenie, aby odfiltrować nazwę pliku i numery linii ze zunifikowanego pliku różnicowego:
Na przykład zunifikowany plik różnicowy:
Spowoduje to:
Aby dopasować dane wyjściowe poleceń we wspólnych wynikach dopasowania grep:
grep -Po '^diff --cc \K.*|^@@@( -[0-9]+,[0-9]+){2} \+\K[0-9]+(?=(,[0-9]+)? )
: Dopasuj nazwę pliku zdiff --cc <filename>
LUB Dopasuj numer linii z@@@ <from-file-range> <from-file-range> <to-file-range>
LUB Dopasuj pozostały tekst po@@@
.sed -e '0~3{s/ @@@[ ]\?//}'
: Usuń@@@[ ]\?
z co 3 linii, aby wcześniej uzyskać opcjonalny kontekst 1 linii++<<<<<<< HEAD
.sed '2~3 s/$/\n1/g'
: Dodaj\n1
co 3 linie między 2. i 3. linią dla numeru kolumny.sed "N;N;N;s/\n/:/g"
: Połącz co 3 linie za pomocą:
.źródło
Używam
grep
jako naiwne rozwiązanie.przykład wyjściowy:
Może widzisz kolorowe wyjście. Pomaga w łatwym odczycie wyników.
źródło