Git Log & History
Lerne, wie du die Git-Historie durchsuchst, filterst und visualisierst, um Änderungen nachzuvollziehen.
Die Git-Historie ist wie ein Logbuch deines Projekts. Jeder Commit erzaehlt eine Geschichte. In diesem Kapitel lernst du, wie du dieses Logbuch lesen, durchsuchen und filtern kannst - von der einfachen Anzeige bis zu maechtigen Suchfunktionen.
git log - Die Grundlagen
Standard-Ausgabe
git log
commit a3f4b2c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7 (HEAD -> main)
Author: Dein Name <deine.email@beispiel.de>
Date: Mon Mar 10 14:00:00 2026 +0100
feat: Kontaktformular hinzugefuegt
commit 8e1d9f0a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e
Author: Dein Name <deine.email@beispiel.de>
Date: Mon Mar 10 12:00:00 2026 +0100
feat: Navigation hinzugefuegt
commit 5c2a1b3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b
Author: Dein Name <deine.email@beispiel.de>
Date: Mon Mar 10 10:00:00 2026 +0100
Initiales Projekt erstellt
Jeder Eintrag zeigt:
- Den Commit-Hash (eindeutige ID)
- Den Autor mit E-Mail
- Das Datum des Commits
- Die Commit-Message
Navigation in git log
Wenn die Historie lang ist, oeffnet Git einen Pager:
| Taste | Aktion |
|---|---|
j oder ↓ | Eine Zeile nach unten |
k oder ↑ | Eine Zeile nach oben |
Space | Eine Seite nach unten |
b | Eine Seite nach oben |
/suchbegriff | Suchen |
q | Beenden |
Nuetzliche Log-Formate
Einzeilige Ansicht
git log --oneline
a3f4b2c feat: Kontaktformular hinzugefuegt
8e1d9f0 feat: Navigation hinzugefuegt
5c2a1b3 Initiales Projekt erstellt
Mit Datei-Statistiken
git log --stat
commit a3f4b2c...
feat: Kontaktformular hinzugefuegt
kontakt.html | 25 +++++++++++++++++++++++++
style.css | 8 ++++++++
2 files changed, 33 insertions(+)
Mit kompakten Aenderungen
git log --shortstat
a3f4b2c feat: Kontaktformular hinzugefuegt
2 files changed, 33 insertions(+)
8e1d9f0 feat: Navigation hinzugefuegt
2 files changed, 15 insertions(+), 2 deletions(-)
Nur Dateinamen anzeigen
git log --name-only
commit a3f4b2c...
feat: Kontaktformular hinzugefuegt
kontakt.html
style.css
Aenderungsstatus pro Datei
git log --name-status
commit a3f4b2c...
feat: Kontaktformular hinzugefuegt
A kontakt.html
M style.css
| Status | Bedeutung |
|---|---|
A | Added (hinzugefuegt) |
M | Modified (geaendert) |
D | Deleted (geloescht) |
R | Renamed (umbenannt) |
Die Historie filtern
Anzahl der Commits begrenzen
# Nur die letzten 5 Commits
git log -5
# Oder
git log -n 5
Nach Datum filtern
# Commits nach einem Datum
git log --after="2026-03-01"
# Commits vor einem Datum
git log --before="2026-03-15"
# Commits in einem Zeitraum
git log --after="2026-03-01" --before="2026-03-15"
# Relative Zeitangaben
git log --since="2 weeks ago"
git log --since="yesterday"
Nach Autor filtern
# Alle Commits eines Autors
git log --author="Anna"
# Funktioniert auch mit Teilen des Namens
git log --author="ann"
Nach Commit-Message suchen
# Commits mit bestimmtem Text in der Message
git log --grep="Navigation"
# Gross-/Kleinschreibung ignorieren
git log --grep="navigation" -i
Nach Datei filtern
# Alle Commits, die eine bestimmte Datei betreffen
git log -- index.html
# Mehrere Dateien
git log -- index.html style.css
# Alle Dateien in einem Ordner
git log -- css/
Nach Inhalt suchen
# Commits finden, die einen bestimmten Text hinzugefuegt oder entfernt haben
git log -S "querySelector"
# Mit Regex suchen
git log -G "function.*login"
Grafische Darstellung
Branch-Grafik im Terminal
git log --oneline --graph
* a3f4b2c (HEAD -> main) feat: Kontaktformular hinzugefuegt
* 8e1d9f0 feat: Navigation hinzugefuegt
* 5c2a1b3 Initiales Projekt erstellt
Mit Branches
git log --oneline --graph --all
* d4e5f6a (feature/blog) feat: Blog-Seite erstellt
| * a3f4b2c (HEAD -> main) feat: Kontaktformular hinzugefuegt
|/
* 8e1d9f0 feat: Navigation hinzugefuegt
* 5c2a1b3 Initiales Projekt erstellt
Eigenes Format definieren
git log --pretty=format:"%h - %an, %ar : %s"
a3f4b2c - Dein Name, 2 hours ago : feat: Kontaktformular hinzugefuegt
8e1d9f0 - Dein Name, 4 hours ago : feat: Navigation hinzugefuegt
5c2a1b3 - Dein Name, 6 hours ago : Initiales Projekt erstellt
| Platzhalter | Bedeutung |
|---|---|
%h | Kurzer Commit-Hash |
%H | Voller Commit-Hash |
%an | Autor-Name |
%ae | Autor-E-Mail |
%ar | Relatives Datum |
%ad | Absolutes Datum |
%s | Commit-Message (Betreff) |
Einzelne Commits untersuchen
git show
# Den neuesten Commit anzeigen
git show
# Einen bestimmten Commit anzeigen
git show a3f4b2c
Nur die geaenderten Dateien
git show --stat a3f4b2c
Nur den Inhalt einer Datei in einem Commit
git show a3f4b2c:index.html
Das zeigt dir den kompletten Inhalt der Datei index.html zum Zeitpunkt des Commits.
Nuetzliche Aliase
Erstelle Abkuerzungen fuer haeufig genutzte Log-Befehle:
# Schoene einzeilige Historie
git config --global alias.lg "log --oneline --graph --all --decorate"
# Kompakte Statistik
git config --global alias.ls "log --oneline --stat"
# Letzte 10 Commits
git config --global alias.last "log -10 --oneline"
Danach kannst du einfach schreiben:
git lg
git ls
git last
Praktische Szenarien
”Wann wurde diese Datei zuletzt geaendert?"
git log -1 -- style.css
"Wer hat diese Zeile geschrieben?"
git blame index.html
5c2a1b3d (Dein Name 2026-03-10 10:00) 1) <!DOCTYPE html>
5c2a1b3d (Dein Name 2026-03-10 10:00) 2) <html lang="de">
8e1d9f0a (Dein Name 2026-03-10 12:00) 3) <head>
a3f4b2c1 (Dein Name 2026-03-10 14:00) 4) <meta charset="UTF-8">
"Was hat sich diese Woche geaendert?"
git log --since="1 week ago" --oneline --stat
"Welche Dateien werden am haeufigsten geaendert?”
git log --name-only --pretty=format:"" | sort | uniq -c | sort -rn | head -10
Uebungen
- Schaue dir die Historie deines Projekts mit verschiedenen Log-Formaten an
- Filtere Commits nach Datum: Was wurde letzte Woche committed?
- Suche nach einem bestimmten Wort in den Commit-Messages
- Erstelle einen Git-Alias fuer dein bevorzugtes Log-Format
- Nutze
git blame, um herauszufinden, wann eine bestimmte Zeile geschrieben wurde
Was kommt als Naechstes?
Im naechsten Kapitel lernst du git diff im Detail kennen - wie du Aenderungen zwischen verschiedenen Zustaenden deines Projekts vergleichen kannst.
Zusammenfassung
git logzeigt die Commit-Historie deines Projekts--onelinegibt eine kompakte Ansicht--graphzeigt Branches visuell an- Du kannst nach Datum, Autor, Message und Dateien filtern
git showzeigt die Details eines einzelnen Commitsgit blamezeigt, wer welche Zeile geschrieben hat- Aliase sparen Zeit bei haeufig genutzten Befehlen
Pro-Tipp: Erstelle dir einen persoenlichen Alias fuer git log mit deinem Lieblingsformat. Die meisten Entwickler nutzen sowas wie git lg fuer eine schoene, kompakte Darstellung. Einmal eingerichtet, sparst du dir taeglich viel Tipparbeit.