Ich habe eine Reihe von Übertragungen in der Repo. Ich möchte eine Liste der Dateien sehen, die zwischen zwei Commits geändert wurden - von SHA1 zu SHA2.
Welchen Befehl soll ich verwenden?
git diff --name-only SHA1 SHA2
wobei Sie nur genügend SHA angeben müssen, um die Übertragungen zu identifizieren. Sie können auch, zum Beispiel
git diff --name-only HEAD~10 HEAD~5
verwenden, um die Unterschiede zwischen dem zehnten und dem fünften Commit (oder so) zu sehen.
git diff --name-status [SHA1 [SHA2]]
ist wie --name-only, nur dass Sie ein einfaches Präfix erhalten, das Ihnen sagt, was mit der Datei passiert ist (geändert, gelöscht, hinzugefügt...)
git log --name-status --oneline [SHA1..SHA2]
ist ähnlich, aber Commits werden nach der Commit-Nachricht aufgelistet, so dass Sie sehen können, wann eine Datei geändert wurde.
Wenn Sie daran interessiert sind, was mit bestimmten Dateien/Ordnern passiert ist, können Sie -- <Dateiname> [<Dateiname>...]
an die git log
-Version anhängen.
Wenn Sie sehen wollen, was bei einem einzelnen Commit passiert ist, nennen Sie ihn SHA1, dann machen Sie
git log --name-status --oneline [SHA1^..SHA1]
Datei-Status-Flags:
M modified - Die Datei wurde geändert
C copy-edit - Datei wurde kopiert und verändert
R rename-edit - Datei wurde umbenannt und geändert
A added - Datei wurde hinzugefügt
D deleted - Datei wurde gelöscht
U unmerged - Datei hat Konflikte nach einem Merge
Aber um die Dateien zu sehen, die zwischen Ihrem Zweig und seinem gemeinsamen Vorgänger mit einem anderen Zweig (z.B. origin/master) geändert wurden:
git diff --name-only `git merge-base origin/master HEAD`