3591 Stimmen

Wie kann ich alle Dateien in einer Übertragung auflisten?

Ich bin auf der Suche nach einem einfachen Git-Befehl, der eine schön formatierte Liste aller Dateien liefert, die Teil des Commits waren, angegeben durch einen Hash (SHA-1), ohne Fremdinformationen.

Ich habe es versucht:

git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d

Es listet zwar die Dateien auf, enthält aber auch unerwünschte Diff-Informationen für jede Datei.

Gibt es eine andere git Befehl, der genau die Liste liefert, die ich brauche, so dass ich das Parsen aus der git show Ausgabe?

46voto

Vicente Quintans Punkte 1328

Die Verwendung des Standard git diff Befehl (auch für Skripte geeignet):

git diff --name-only <sha>^ <sha>

Wenn Sie auch den Status der geänderten Dateien erfahren möchten:

git diff --name-status <sha>^ <sha>

Dies funktioniert gut mit Merge Commits.

37voto

Prakash26790 Punkte 537

Um die geänderten Dateien aufzulisten eine bestimmte Verpflichtung :

git show --pretty=%gd --stat <commit_id>

Um die geänderten Dateien aufzulisten jüngste Zusage :

git show --pretty=%gd --stat

27voto

Pat Notz Punkte 196406
$ git log 88ee8^..88ee8 --name-only --pretty="format:"

22voto

Alireza Punkte 92209

OK, es gibt mehrere Möglichkeiten, alle Dateien einer bestimmten Übertragung anzuzeigen...

Um die Informations- und nur Namen anzeigen der Dateien, die übertragen wurden, können Sie einfach hinzufügen --name-only o --name-status Flagge... Diese Flags zeigen Ihnen nur die Dateinamen an, die sich von früheren Übertragungen unterscheiden...

Sie können also tun git diff gefolgt von --name-only mit zwei Commit-Hashes nach <sha0> <sha1> . Etwa wie unten:

git diff --name-only 5f12f15 kag9f02

Ich habe auch das folgende Bild erstellt, um alle Schritte zu zeigen, die in diesen Situationen zu durchlaufen sind:

git diff --name-only 5f12f15 kag9f02

20voto

Developer-Sid Punkte 1317

Verwenden Sie einen einfachen einzeiligen Befehl, wenn Sie nur die Liste der Dateien haben wollen, die bei der letzten Übertragung geändert wurden:

git diff HEAD~1 --name-only

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