Zum Inhalt springen
Git & GitHub Anfänger 20 min

Git Log & History

Lerne, wie du die Git-Historie durchsuchst, filterst und visualisierst, um Änderungen nachzuvollziehen.

Aktualisiert:

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

Wenn die Historie lang ist, oeffnet Git einen Pager:

TasteAktion
j oder Eine Zeile nach unten
k oder Eine Zeile nach oben
SpaceEine Seite nach unten
bEine Seite nach oben
/suchbegriffSuchen
qBeenden

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
StatusBedeutung
AAdded (hinzugefuegt)
MModified (geaendert)
DDeleted (geloescht)
RRenamed (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
PlatzhalterBedeutung
%hKurzer Commit-Hash
%HVoller Commit-Hash
%anAutor-Name
%aeAutor-E-Mail
%arRelatives Datum
%adAbsolutes Datum
%sCommit-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

  1. Schaue dir die Historie deines Projekts mit verschiedenen Log-Formaten an
  2. Filtere Commits nach Datum: Was wurde letzte Woche committed?
  3. Suche nach einem bestimmten Wort in den Commit-Messages
  4. Erstelle einen Git-Alias fuer dein bevorzugtes Log-Format
  5. 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 log zeigt die Commit-Historie deines Projekts
  • --oneline gibt eine kompakte Ansicht
  • --graph zeigt Branches visuell an
  • Du kannst nach Datum, Autor, Message und Dateien filtern
  • git show zeigt die Details eines einzelnen Commits
  • git blame zeigt, 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.

Zurück zum Git & GitHub Kurs