Gibt es eine Möglichkeit, alle Commits aufzulisten, die eine bestimmte Datei geändert haben?
Antworten
Zu viele Anzeigen?Alternativ (seit Git 1.8.4) ist es auch möglich, einfach alle Commits zu erhalten, die eine bestimmte Teil einer Datei. Sie erhalten sie, indem Sie die Start- und Endzeilennummer angeben.
Das zurückgegebene Ergebnis wäre die Liste der Übertragungen, die diesen bestimmten Teil geändert haben. Der Befehl geht wie folgt:
git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>
wobei upperLimit
es el start_line_number
y lowerLimit
es el ending_line_number
Mehr Infos - https://www.techpurohit.in/list-some-useful-git-commands
Als jackrabb1t wies darauf hin , --follow
ist robuster, da es die Auflistung der Historie über Umbenennungen/Verschiebungen hinaus fortsetzt. Wenn Sie also nach einer Datei suchen, die sich derzeit nicht im selben Pfad befindet, oder nach einer Datei, die über mehrere Übertragungen hinweg umbenannt wurde, --follow
wird es verfolgen.
Dies kann eine bessere Option sein, wenn Sie die Namens-/Pfadänderungen visualisieren möchten:
git log --follow --name-status -- <path>
Wenn Sie jedoch eine kompaktere Liste wünschen, die nur das Wesentliche enthält:
git log --follow --name-status --format='%H' -- <path>
oder sogar
git log --follow --name-only --format='%H' -- <path>
Der Nachteil ist, dass --follow
funktioniert nur bei einer einzigen Datei.
Das ist alles, was ich brauche. Es zeigt alle Änderungen an, einschließlich einiger Änderungen durch die Zusammenführung.
3 Stimmen
Suchen Sie nach Änderungen an einer Datei in einer einzelnen Verzweigung, in allen lokalen Verzweigungen, in allen Verzweigungen auf einer einzigen entfernten Verzweigung oder in allen? Ich denke, für alle ist ein Skript erforderlich.