git -> Liste der Dateien anzeigen, die in den letzten Commits in einem bestimmten Verzeichnis geändert wurden

Antworten:

164

Dieser Befehl ähnelt eher dem Befehl svn, da er den Dateistatus anzeigt: Hinzugefügt (A), Kopiert (C), Gelöscht (D), Geändert (M), Umbenannt (R) und andere.

git log --name-status -10 path/to/dir

Es lohnt sich, auf der vollständigen Dokumentationsseite nachzuschauen git log. Dort erfahren Sie, dass -10sich dies auf die letzten 10 Commits bezieht, und erhalten -punter einer Vielzahl anderer Extras den vollständigen Patch.

htanata
quelle
12
Der Vollständigkeit halber: Der häufig verwendete Satz ähnlicher Optionen ist -p(vollständiger Patch), --stat(Anzahl der geänderten Zeilen), --numstat(wie, --stataber maschinenlesbar) --name-statusund --name-only(nur die Dateinamen).
Cascabel
3
Für alle, die zu dieser Frage kommen, ohne es bereits zu wissen, bezieht sich -10 auf die Anzahl der Commits, die angezeigt werden sollen. Wenn Sie eine umfassende Liste von Commits benötigen, versuchen Sie, die Anzahl ungewöhnlich groß zu machen, z. B. -1000 oder mehr, je nach Bedarf.
Julian Soro
Ist es auch möglich, den Verlauf seit einem bestimmten Commit oder Label anzuzeigen? Es ist Hunderte von Commits her, also versuchen Sie das zu zählen ...
MrFox
2
@ MrFox git log <from revision>.., z git log abc123... Lesen Sie hier mehr über das Bereichsformat: kernel.org/pub/software/scm/git/docs/…
htanata
36

Gehen Sie wie folgt vor, um alle in den letzten 10 Commits geänderten Dateien ohne Commit-Informationen anzuzeigen:

git diff --name-only HEAD~10..HEAD yourdir
dbn
quelle
3
Perfekte Lösung zum erneuten Öffnen von Dateien in Ihrem Editor.
cdosborn
1
Diese Lösung listet nur Dateipfade auf, keine Kommentare, was gegenüber der akzeptierten Antwort sehr geschätzt wird. Wenn Sie nur eine Liste der Dateien wünschen, die sich in den angegebenen Commits geändert haben, führt diese Lösung genau das aus .
Big Rich
6

Versuche es

git log -p -10 yourdir/

Es sollte funktionieren.

blue112
quelle
1
Das OP forderte eine Liste der geänderten Dateien an, nicht den vollständigen Patch.
Cascabel
1
Wenn Sie möchten, dass die Liste der Dateien geändert wird, können Sie --stat anstelle von -p
blue112
1

Um die gesamte commitZweigstelle (aktuell und alt) anzuzeigen, müssen Sie die Anzahl der Commits in der Zweigstelle zählen

git rev-list --count branch_name

Sobald Sie alle Commit-Zählungen erhalten haben, können Sie ausführen

git log --name-status -countNumber /path
Sayan Biswas
quelle
Und man kann die Ansicht vereinfachen, indem --pretty=onelineman dem git logobigen Befehl die Option hinzufügt . Durch Anhängen eines | sort | uniqBefehls kann die Statuskennzeichnung von
htanata