git show
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>...]Optionen
Die richtige Option wählen
show, log und diff
Drei Wege, die Historie anzusehen
| Befehl | Zeigt |
|---|---|
git log | Eine Liste von Commits |
git show <commit> | Ein Commit und seine Änderungen |
git diff A B | Der Unterschied zwischen zwei beliebigen Versionen |
Beispiele
Letzter Commit
git showZeigt HEAD mit seinem Diff.
Beliebiger Commit
git show a1b2c3dZeigt diesen Commit.
Eine Datei in einem alten Commit
git show HEAD~2:app.jsGibt app.js so aus, wie es zwei Commits zuvor war.
Nur Zusammenfassung
git show --statGeänderte Dateien statt des vollständigen Diffs.
Workflow-Beispiele
git log --onelineFinden
git show --stat a1b2c3dWelche Dateien er berührt hat
git show a1b2c3dDie 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
git show <commit>.
Zum Lesen: git show <commit>:<path>. Zum Wiederherstellen: git restore --source=<commit> <path>.