Diese Frage erfordert "Zeilennummern". Wenn Sie sich nicht für Zeilennummern in der Ausgabe interessieren, lesen Sie diese Frage und Antwort .
Grundsätzlich möchte ich nicht den geänderten Inhalt sehen, sondern nur die Dateinamen und Zeilennummern.
Diese Frage erfordert "Zeilennummern". Wenn Sie sich nicht für Zeilennummern in der Ausgabe interessieren, lesen Sie diese Frage und Antwort .
Grundsätzlich möchte ich nicht den geänderten Inhalt sehen, sondern nur die Dateinamen und Zeilennummern.
Antworten:
Hinweis: Wenn Sie nur nach den Namen geänderter Dateien suchen ( ohne die Zeilennummern für geänderte Zeilen) , klicken Sie einfach auf diesen Link, um hier eine andere Antwort zu erhalten .
Es gibt keine eingebaute Option dafür (und ich denke auch nicht, dass es so nützlich ist), aber es ist möglich, dies in Git mit Hilfe eines "externen Diff" -Skripts zu tun.
Hier ist eine ziemlich beschissene; Es liegt an Ihnen, die Ausgabe so zu korrigieren, wie Sie es möchten.
Einzelheiten zu "external diff" finden Sie in der Beschreibung
GIT_EXTERNAL_DIFF
auf der Git-Handbuchseite (um Zeile 700, ziemlich nahe am Ende).quelle
| grep -o '^[0-9]*'
gibt Ihnen nur Zahlen, vorausgesetzt, Sie interessieren sich nicht für die rechte Seite.--diff-filter=...
wo das...
Teil die Art von Änderungen ist, die Sie sehen möchten:M
für geänderte,A
hinzugefügte,D
gelöschte und andere gemäß dergit diff
Dokumentation.So einfach:
Geh raus und diff!
quelle
git diff --name-only master..HEAD
Zeilennummern wie in Anzahl der geänderten Zeilen oder die tatsächlichen Zeilennummern, die die Änderungen enthalten? Wenn Sie die Anzahl der geänderten Zeilen möchten, verwenden Sie
git diff --stat
. Dies gibt Ihnen eine Anzeige wie folgt:Es gibt keine Möglichkeit, die Zeilennummern der Änderungen selbst abzurufen.
quelle
git diff master --compact-summary
Ausgabe ist:
Genau das brauchen Sie. Gleiches Format wie beim Festschreiben oder Abrufen neuer Festschreibungen von der Fernbedienung.
PS: Das ist verdrahtet, dass niemand so geantwortet hat.
quelle
1) Mein Favorit:
Stellt den Dateistatus voran, z.
2) Wenn Sie Statistiken wünschen, dann:
zeigt so etwas wie:
3) Schließlich, wenn Sie wirklich nur die Dateinamen wollen:
Wird einfach zeigen:
quelle
Zeigt die Dateinamen und die Anzahl / Anzahl der Zeilen an, die sich in jeder Datei zwischen jetzt und dem angegebenen Commit geändert haben:
quelle
Ich weiß, dass dies eine alte Frage ist, aber unter Windows filtert dies die Git-Ausgabe in die Dateien und ändert die Zeilennummern:
(git diff -p --stat) | findstr "@@ --git"
Das Extrahieren der Dateien und der geänderten Zeilen ist etwas aufwendiger:
for /f "tokens=3,4* delims=-+ " %f in ('^(git diff -p --stat .^) ^| findstr ^"@@ --git^"') do @echo %f
quelle
Die sauberste Ausgabe, dh nur Dateinamen / Pfade, wird mit geliefert
HTH
quelle
Ein
git version 2.17.1
, um diesen Zweck zu erreichen , gibt es keine eingebaute Flagge .Hier ist ein Beispielbefehl zum Herausfiltern des Dateinamens und der Zeilennummern aus einem einheitlichen Diff:
Zum Beispiel das einheitliche Diff:
Wird darin enden, dass:
So passen Sie die Ausgabe von Befehlen in allgemeinen Grep-Übereinstimmungsergebnissen an:
grep -Po '^diff --cc \K.*|^@@@( -[0-9]+,[0-9]+){2} \+\K[0-9]+(?=(,[0-9]+)? )
: Dateiname vondiff --cc <filename>
OR abgleichen Zeilennummer von@@@ <from-file-range> <from-file-range> <to-file-range>
OR abgleichen Restlichen Text nachher abgleichen@@@
.sed -e '0~3{s/ @@@[ ]\?//}'
: Entfernen Sie@@@[ ]\?
aus jeder dritten Zeile, um den optionalen 1-Zeilen-Kontext zu erhalten++<<<<<<< HEAD
.sed '2~3 s/$/\n1/g'
: Fügen Sie\n1
alle 3 Zeilen zwischen der 2. und 3. Zeile für die Spaltennummer hinzu.sed "N;N;N;s/\n/:/g"
: Verbinde alle 3 Zeilen mit a:
.quelle
Ich benutze
grep
als naive Lösung.ein Ausgabebeispiel:
Vielleicht können Sie eine farbige Ausgabe sehen. Es hilft Ihnen, Ausgaben einfach zu lesen.
quelle