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?

13voto

skiphoppy Punkte 89474

Das gefällt mir:

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

10voto

Newtonx Punkte 3355

Listet die Dateien auf, die bei einer Übertragung geändert wurden:

git diff --name-only SHA1^ SHA1

Dabei werden keine Protokollmeldungen, keine zusätzlichen Zeilenumbrüche oder andere Unklarheiten angezeigt. Dies funktioniert für jede Übertragung, nicht nur für die aktuelle.

10voto

thefreshteapot Punkte 111

Zeigen Sie das Protokoll an.

COMMIT kann leer sein (""), die SHA-1 Hash, oder eine verkürzte Version des SHA-1-Hashes.

git log COMMIT -1 --name-only

Dadurch werden nur die Dateien aufgelistet, was für die weitere Bearbeitung sehr nützlich ist.

git log COMMIT -1 --name-only --pretty=format:"" | grep "[^\s]"

9voto

user2394284 Punkte 4682

Nur die Dateiliste (nicht einmal die Übergabemeldung):

git show --name-only --pretty=format:

Öffnen Sie z.B. alle geänderten Dateien in Ihrem Editor:

git show --name-only --pretty=format: | xargs "$EDITOR"

6voto

srcspider Punkte 10579

Es gibt einen einfachen Trick, um eine Dateiliste anzuzeigen. Fügen Sie einfach : nach der Raute:

git show 9d3a52c474:

Anschließend können Sie bohren,

git show 9d3a52c474:someDir/someOtherDir

Wenn Sie auf eine Datei stoßen, erhalten Sie die Rohfassung der Datei; das ist manchmal genau das, was Sie wollen, wenn Sie nur nach einer schönen Referenz oder wichtigen Codestücken suchen (Diffs können alles durcheinander bringen),

git show 9d3a52c474:someDir/someOtherDir/somefile

Der einzige Nachteil dieser Methode ist, dass sie nicht ohne weiteres einen Dateibaum anzeigt.

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