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?

4812voto

Ryan McGeary Punkte 228632

Bevorzugter Weg (denn es ist ein Klempnerarbeiten Befehl; soll programmatisch sein):

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js

Ein anderer Weg (weniger bevorzugt für Skripte, da es sich um eine Porzellan Befehl; ist für den Benutzer gedacht)

$ git show --pretty="" --name-only bd61ad98    
index.html
javascript/application.js
javascript/ie6.js

  • El --no-commit-id unterdrückt die Ausgabe der Commit-ID.
  • El --pretty Argument gibt eine leere Formatzeichenkette an, um den Ballast am Anfang zu vermeiden.
  • El --name-only zeigt nur die betroffenen Dateinamen an (Danke Hank). verwenden --name-status stattdessen, wenn Sie sehen wollen, was mit den einzelnen Dateien passiert ist ( D gestrichen, M odifiziert, A dded)
  • El -r Argument ist die Rückführung in Teilbäume

354voto

Jakub Narębski Punkte 286531

Wenn Sie die Liste der geänderten Dateien abrufen möchten:

git diff-tree --no-commit-id --name-only -r <commit-ish>

Wenn Sie die Liste aller Dateien in einer Übergabe erhalten möchten, können Sie

git ls-tree --name-only -r <commit-ish>

318voto

Hank Gay Punkte 67607

Ich gehe einfach davon aus, dass gitk ist hierfür nicht erwünscht. In diesem Fall versuchen Sie git show --name-only <sha> .

277voto

Tuxdude Punkte 43955

Ich persönlich verwende die Kombination aus -Stat y --oneline mit dem anzeigen Befehl:

git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD

Wenn Sie die Hinzufügungs-/Entfernungsstatistiken nicht mögen/wollen, können Sie Folgendes ersetzen -Stat con --nur-Namen

git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD

135voto

Indu Devanath Punkte 1882

Sie können auch Folgendes tun

git log --name-only

und Sie können verschiedene Commits, Commit-Meldungen und die geänderten Dateien durchsuchen.

Geben Sie q ein, um die Eingabeaufforderung zurückzubekommen.

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