git show

Untersuchen & Vergleichen

Zeigt einen Commit, einen Tag oder eine Datei in einer bestimmten Version


Der Befehl 'git show' zeigt ein Objekt an. Bei einem Commit gibt er Autor, Datum und Nachricht aus, gefolgt vom Diff, den dieser Commit eingeführt hat. Bei einem annotierten Tag zeigt er die Tag-Nachricht und dann den Commit. Mit <commit>:<path> gibt er eine Datei genau so aus, wie sie in diesem Commit war.

Syntax

git show [<options>] [<object>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (2)

Zeigt eine Zusammenfassung der geänderten Dateien statt des vollständigen Diffs.

EmpfohlenSchnelle Größenprüfung eines Commits vor dem Lesen

Beispiel

git show --stat

Gibt den Kopf in einer Zeile aus: kurzer Hash und Betreff.

Bei BedarfKompakter Kopf, wenn nur der Diff zählt

Beispiel

git show --oneline

Die richtige Option wählen

show, log und diff

Drei Wege, die Historie anzusehen

BefehlZeigt
git logEine Liste von Commits
git show <commit>Ein Commit und seine Änderungen
git diff A BDer Unterschied zwischen zwei beliebigen Versionen

Beispiele

Letzter Commit

git show

Zeigt HEAD mit seinem Diff.


Beliebiger Commit

git show a1b2c3d

Zeigt diesen Commit.


Eine Datei in einem alten Commit

git show HEAD~2:app.js

Gibt app.js so aus, wie es zwei Commits zuvor war.


Nur Zusammenfassung

git show --stat

Geänderte Dateien statt des vollständigen Diffs.

Workflow-Beispiele

1
git log --oneline

Finden

2
git show --stat a1b2c3d

Welche Dateien er berührt hat

3
git show a1b2c3d

Die vollständige Änderung

Fehlerbehebung

fatal: path 'x' does not exist in 'HEAD~1'

Ursache: Die Datei existierte in diesem Commit nicht, oder der Pfad ist falsch

Verwende den Pfad ab der Repository-Wurzel; prüfe mit git show --stat

Ein Merge-Commit zeigt keinen Diff

Ursache: Merges zeigen einen kombinierten Diff nur für Konfliktzeilen

Nutze git show -m oder git diff <merge>^1 <merge>

Tipps & Stolperfallen

Best Practices

  • ✓Bei großen Commits zuerst --stat.
  • ✓Nutze commit:path, um eine alte Version zu lesen, ohne deine Dateien zu ändern.

Häufige Fehler

  • ✗git show HEAD~1 app.js (ein Filter) schreiben, obwohl HEAD~1:app.js (der Dateiinhalt) gemeint war.
  • ✗In commit:path einen Pfad relativ zum eigenen Ordner ohne ./ verwenden — Pfade beginnen an der Wurzel des Repositorys.

FAQ

A:

git show <commit>.

A:

Zum Lesen: git show <commit>:<path>. Zum Wiederherstellen: git restore --source=<commit> <path>.