git log

Definition
Der git log-Befehl zeigt festgeschriebene Snapshots. Er wird zum Auflisten und Filtern des Projektverlaufs sowie zum Suchen nach bestimmten Änderungen verwendet. Im Gegensatz zu git status, das das Arbeitsverzeichnis und die Staging-Area überwacht, funktioniert git log nur mit dem festgeschriebenen Verlauf.
Verwendung
Der git log-Befehl ist ein Werkzeug zur Untersuchung des Repository-Verlaufs und zum Auffinden einer bestimmten Projektversion. Die Log-Ausgabe kann unterschiedlich angepasst werden, vom Filtern von Commits bis zur Anzeige in einem vollständig benutzerdefinierten Format. Hier ist eine Liste der am häufigsten verwendeten Konfigurationen von git log:
| git log | Beschreibung |
|---|---|
| git log | Voreingestellte Formatierung, zeigt den gesamten Commit-Verlauf. Leertaste zum Scrollen, q zum Beenden, falls die Log-Ausgabe mehrere Bildschirme einnimmt. |
git log -n <limit> | Begrenzt die Anzahl der Commits. Beispiel: git log -n 2 zeigt nur 2 Commits an. |
| git log --oneline | Fügt jeden Commit in eine einzelne Zeile, was sich für einen Überblick über die Projektverlauf eignet. |
| git log --stat | Enthält neben den git log-Informationen die geänderten Dateien sowie die Anzahl der hinzugefügten oder gelöschten Zeilen. |
| git log -p | Zeigt den Patch für jeden Commit sowie den vollständigen Diff an. |
git log --author="<pattern>" | Sucht nach Commits eines angegebenen Autors. Das Argument <pattern> kann eine Zeichenkette oder ein Regex sein. |
git log --grep="<pattern>" | Sucht nach Commits mit einer Commit-Nachricht. Das Argument <pattern> kann eine Zeichenkette oder ein Regex sein. |
git log <since>..<until> | Zeigt nur Commits an, die zwischen den Argumenten <since> und <until> liegen. Beide können entweder eine Commit-ID, ein Branch-Name, HEAD oder eine andere Art von Versionsreferenz sein. |
git log <file> | Zeigt die Commits an, die die angegebene Datei enthalten. Dies erleichtert die Anzeige der Historie der Datei. |
| git log --graph --decorate --oneline | Die Option --graph zeichnet einen textbasierten Graphen der Commits auf der linken Seite der Commit-Nachrichten. Die Option --decorate fügt die Namen der Branches oder Tags der angezeigten Commits hinzu. Die Option --oneline zeigt die Commit-Informationen in einer einzelnen Zeile an, was das schnelle Durchsuchen der Commits erleichtert. |
git log --since=<date> | Zeigt Commits an, die neuer als ein bestimmtes Datum sind. |
git log --until=<date> | Zeigt Commits an, die älter als ein bestimmtes Datum sind. |
| git log --all | Zeigt Commits aus allen Branches im Repository an. |
Erläuterung
Alle oben genannten Optionen können zu folgendem Befehl kombiniert werden:
git log
git log --author="Bob Smith" -p w3docs.txtDas angegebene Beispiel zeigt den vollständigen Diff aller Änderungen, die der Autor an der Datei w3docs.txt vorgenommen hat.
Die ..-Syntax wird zum Vergleichen von Branches verwendet:
git log
git log --oneline master..some-featureDieses Beispiel zeigt eine kurze Übersicht aller Commits, die sich in some-feature befinden, aber nicht in master.
Praxis
Welche Funktionen und Optionen hat der Befehl 'git log'?