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?

17voto

Koen. Punkte 22804

Außerdem gibt es git whatchanged , die eher niedrigschwellig ist als git log

NAME
       git-whatchanged - Show logs with difference each commit introduces

Es gibt die Commit-Zusammenfassung mit einer Liste von Dateien darunter aus, mit ihren Modi und ob sie hinzugefügt wurden( A ), gelöscht( D ), oder geändert( M );

$ git whatchanged f31a441398fb7834fde24c5b0c2974182a431363

Würde etwas geben wie:

commit f31a441398fb7834fde24c5b0c2974182a431363
Author: xx <xx@xx.nl>
Date:   Tue Sep 29 17:23:22 2015 +0200

    added fb skd and XLForm

:000000 100644 0000000... 90a20d7... A  Pods/Bolts/Bolts/Common/BFCancellationToken.h
:000000 100644 0000000... b5006d0... A  Pods/Bolts/Bolts/Common/BFCancellationToken.m
:000000 100644 0000000... 3e7b711... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h
:000000 100644 0000000... 9c8a7ae... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.m
:000000 100644 0000000... bd6e7a1... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.h
:000000 100644 0000000... 947f725... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.m
:000000 100644 0000000... cf7dcdf... A  Pods/Bolts/Bolts/Common/BFDefines.h
:000000 100644 0000000... 02af9ba... A  Pods/Bolts/Bolts/Common/BFExecutor.h
:000000 100644 0000000... 292e27c... A  Pods/Bolts/Bolts/Common/BFExecutor.m
:000000 100644 0000000... 827071d... A  Pods/Bolts/Bolts/Common/BFTask.h
...

Ich weiß, dass diese Antwort nicht wirklich mit "ohne fremde Informationen" übereinstimmt, aber ich denke trotzdem, dass diese Liste nützlicher ist als nur die Dateinamen.

17voto

Piotr Perak Punkte 10272

Ich verwende dies, um die Liste der geänderten Dateien in einem Merge-Commit zu erhalten

 git log -m -1 --name-only --pretty="format:"
configs/anotherconfig.xml
configs/configsInRepo.xml

oder

 git log -m -1 --name-status --pretty="format:"
A       configs/anotherconfig.xml
M       configs/configsInRepo.xml

16voto

user135507 Punkte 159

Ich verwende dies, um die Liste der geänderten Dateien zwischen zwei Changesets zu erhalten:

git diff --name-status <SHA1> <SHA2> | cut -f2

14voto

Ijaz Ahmad Punkte 9810

Ich habe eine perfekte Antwort auf diese Frage gefunden:

git show --name-status --oneline <commit-hash>

Damit ich wissen kann

  • welche Dateien gerade geändert wurden (M)

  • Welche Dateien wurden neu hinzugefügt (A)

  • Welche Dateien wurden gelöscht (D)

14voto

Michael De Silva Punkte 3788

Ich verwende gerne

git show --stat <SHA1>^..<SHA2>

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