git log
Commit-Logs anzeigen
Der Befehl 'git log' zeigt die Commit-Historie deines Repositorys. Er listet Commits in umgekehrt chronologischer Reihenfolge (neueste zuerst) mit Hash, Autor, Datum und Nachricht. Mit verschiedenen Optionen passt du das Ausgabeformat an, filterst Commits und verfolgst die Historie einer Datei. Unverzichtbar, um die Projektgeschichte zu verstehen und bestimmte Änderungen zu finden.
Syntax
git log [<options>] [<revision-range>] [[--] <path>...]Optionen
Die richtige Option wählen
Ausgabeformate von log
Das passende Format wählen
| Befehl | Zeigt | Ausführlichkeit | Am besten für |
|---|---|---|---|
git log | Alle Details | Hoch | Genaue Prüfung |
git log --oneline | Hash + Nachricht | Niedrig | Schneller Überblick |
git log --stat | Geänderte Dateien pro Commit | Mittel | Umfang der Änderungen sehen |
git log -p | Vollständiger Diff | Sehr hoch | Code-Review |
Commits filtern
Bestimmte Commits in der Historie finden
| Befehl | Filtern nach | Beispiel |
|---|---|---|
--author | Person, die den Commit geschrieben hat (Autor; für den Committer --committer nutzen) | --author="John" |
--since/--until | Zeitraum | --since="2024-01-01" |
--grep | Commit-Nachricht | --grep="fix" |
-- <path> | Geänderte Dateien | -- src/app.js |
Log oder Reflog
Verstehen, wann man welches nutzt
| Befehl | Zeigt | Übersteht Reset? | Nutzen für |
|---|---|---|---|
git log | Commit-Historie des Branches | No | Normale Historie ansehen |
git reflog | Alle HEAD-Bewegungen | Ja | Verlorene Commits retten |
Beispiele
Neueste Commits ansehen
git logZeigt die vollständige Historie mit Hash, Autor, Datum und Nachricht.
Kompakte Einzeilen-Ansicht
git log --onelineZeigt jeden Commit in einer Zeile mit kurzem Hash und Nachricht.
Historie einer Datei ansehen
git log -- path/to/file.jsZeigt nur Commits, die die angegebene Datei geändert haben.
Visueller Branch-Graph
git log --oneline --graph --allZeigt einen Textgraphen aller Branches und ihrer Commits.
Workflow-Beispiele
git log --oneline -10Schneller Blick auf die letzten 10 Commits
git log -p -1Den vollständigen Diff des neuesten Commits ansehen
git log --oneline -- path/to/file.jsCommits auflisten, die diese Datei geändert haben
git log -p -- path/to/file.jsDie tatsächlichen Änderungen ansehen
git blame path/to/file.jsSehen, wer jede Zeile geschrieben hat
git log --oneline --graph --allVollständige Branch-Ansicht
git log --oneline --graph main..featureCommits in feature, die nicht in main sind
Fehlerbehebung
Log-Ausgabe ist zu lang / ich komme nicht heraus
Ursache: Git nutzt standardmäßig den Pager 'less'
Drücke 'q' zum Beenden. Begrenze mit -n oder leite an head weiter: git log --oneline | head -20
Commits anderer Branches fehlen
Ursache: Git log zeigt standardmäßig nur Commits, die von HEAD (deinem aktuellen Branch) erreichbar sind
Nutze --all: git log --oneline --all
Ich finde einen Commit nicht, von dem ich weiß, dass es ihn gibt
Ursache: Der Commit ist vielleicht auf einem anderen Branch oder wurde per Reset entfernt
Versuche git reflog, um alle letzten HEAD-Positionen zu sehen, auch nach Resets
Log zeigt zu viel / zu wenig Information
Ursache: Das Standardformat passt vielleicht nicht zu deinem Bedarf
Nutze --oneline für kurz, -p für ausführlich, --stat für eine Dateiübersicht
Tipps & Stolperfallen
Best Practices
- ✓Nutze --oneline für einen schnellen Überblick, das volle Log für eine genaue Prüfung
- ✓Kombiniere --graph --all --oneline für eine vollständige Branch-Ansicht
- ✓Nutze -n, um die Ausgabe zu begrenzen, wenn du nur die neuesten Commits brauchst
- ✓Filtere nach Autor, Datum oder Pfad, um bestimmte Änderungen zu finden
- ✓Nutze git log main..feature, um Commits zu sehen, die nur ein Branch hat
Häufige Fehler
- ✗Nicht wissen, dass man mit 'q' die Log-Ansicht verlässt (sie nutzt standardmäßig den Pager less).
- ✗--all vergessen, wenn man Commits aller Branches sehen will, nicht nur des aktuellen.
- ✗git log nutzen, wo git reflog nötig ist – log zeigt die Commit-Historie, reflog zeigt alle Ref-Änderungen einschließlich Resets.
- ✗Kein -- vor Dateipfade setzen, was zu Verwechslungen mit Branch-Namen führen kann.
FAQ
Drücke 'q'. Git log nutzt den Pager 'less'. Du kannst die Ausgabe auch mit -n begrenzen oder an head weiterleiten.
Nutze --all: git log --oneline --all. Ohne siehst du nur Commits, die von deinem aktuellen Branch (HEAD) erreichbar sind.
Nutze -p (Patch): git log -p. Mit -1 siehst du nur den neuesten: git log -p -1
Nutze --author: git log --author="name". Passt auf Teile von Namen und E-Mails (Groß-/Kleinschreibung zählt; -i ignoriert sie).
Log zeigt die Commit-Historie. Reflog zeigt alle HEAD-Bewegungen einschließlich Resets. Mit reflog rettest du „verlorene“ Commits.