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?

77voto

lunohodov Punkte 4789

Vor kurzem musste ich alle geänderten Dateien zwischen zwei Commits auflisten. Also habe ich diesen (ebenfalls *nix-spezifischen) Befehl verwendet

git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq

Oder als Ethan weist darauf hin :

git diff --name-only START_COMMIT..END_COMMIT

Verwendung von --name-status wird auch die Änderung (hinzugefügt, geändert, gelöscht usw.) neben jeder Datei angezeigt:

git diff --name-status START_COMMIT..END_COMMIT

73voto

VaTo Punkte 2720

Die einfachste Form:

git show --stat (hash)

Das ist leichter zu merken und gibt Ihnen alle Informationen, die Sie brauchen.

Wenn Sie wirklich nur die Namen der Dateien wollen, können Sie die --name-only Option.

git show --stat --name-only (hash)

53voto

takeshin Punkte 46602

Ich benutze die geändert alias ziemlich oft. So richten Sie es ein:

git config --global alias.changed 'show --pretty="format:" --name-only'

Dann:

git changed (lists files modified in last commit)
git changed bAda55 (lists files modified in this commit)
git changed bAda55..ff0021 (lists files modified between those commits)

Ähnliche Befehle, die nützlich sein können:

git log --name-status --oneline (very similar, but shows what actually happened M/C/D)
git show --name-only

51voto

alpha_989 Punkte 4371

Verwenden Sie

git log --name-status

Dies zeigt Ihnen die Commit-ID, die Nachricht, die geänderten Dateien und ob sie geändert, erstellt, hinzugefügt oder gelöscht wurden. Sozusagen ein All-in-One-Befehl.

48voto

Jignesh Joisar Punkte 11239

Versuchen Sie diesen Befehl für Name und ändert die Anzahl der Zeilen

git show --stat <commit-hash>

Nur Dateinamen anzeigen

git show --stat --name-only  <commit-hash>

Um den letzten Commit-Hash zu erhalten, versuchen Sie diesen Befehl:

git log -1

Letzte Übertragung mit Anzeige des Dateinamens und des Dateistatus Ändern, Erstellen oder Löschen:

 git log -1 --oneline --name-status <commit-hash>

Oder für alle

git log

Für fortgeschrittene Informationen zum Git-Protokoll lesen Sie bitte diese Artikel:

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