W3docs

git show

Erfahren Sie, wie git show Commits, Tags und Dateien in beliebigen Revisionen anzeigt. Mit nützlichen Optionen und Beispielen.

Definition

Der Befehl git show zeigt Details zu einem Git-Objekt an — meistens einem Commit. Bei einem Commit gibt er die Log-Nachricht zusammen mit dem vollständigen Diff der vorgenommenen Änderungen aus und vermittelt so ein vollständiges Bild einer einzelnen Revision. Er kann auch Tags, Trees und den Inhalt einer Datei zu einem beliebigen Zeitpunkt in der Geschichte anzeigen.

Verwenden Sie git show, wenn Sie bereits wissen, welches Objekt Sie interessiert, und alles darüber auf einem Bildschirm sehen möchten. Diese Seite behandelt das Anzeigen von Commits, das Lesen der Ausgabe, das Anzeigen einer Datei in einer bestimmten Revision, das Untersuchen von Tags, die nützlichsten Optionen und die Unterschiede des Befehls zu git log und git diff.

Einen Commit anzeigen

Ohne Argumente zeigt git show den neuesten Commit (HEAD) an: seinen Autor, das Datum, die Nachricht und die eingeführten Änderungen.

git show

Um einen anderen Commit zu untersuchen, übergeben Sie seinen Hash, einen Branch-Namen oder eine relative Referenz:

git show a1b2c3d        # by abbreviated hash
git show HEAD~2         # the commit two steps before HEAD
git show main           # the tip of the main branch
git show HEAD@{1}       # where HEAD pointed one move ago (via the reflog)

Die Ausgabe kombiniert, was Sie von git log und git diff für diesen einen Commit erhalten würden.

Die Ausgabe lesen

Eine typische Commit-Anzeige besteht aus einem Header gefolgt von einem Unified Diff:

commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Jane Dev <[email protected]m>
Date:   Mon Jun 9 14:02:11 2025 +0200

    Fix off-by-one error in pagination

diff --git a/src/page.js b/src/page.js
index 83db48f..f735c2e 100644
--- a/src/page.js
+++ b/src/page.js
@@ -10,7 +10,7 @@ function pageStart(page, perPage) {
-  return page * perPage;
+  return (page - 1) * perPage;
 }

Der Header nennt den Commit, seinen Autor und den Zeitpunkt. Der diff --git-Block zeigt die Änderung: Zeilen, die mit - beginnen, wurden entfernt, Zeilen mit + wurden hinzugefügt, und der @@ ... @@-Hunk-Header gibt die betroffenen Zeilennummern an. Dies ist dasselbe Patch-Format, das Sie von git diff kennen.

Eine Datei in einer bestimmten Revision anzeigen

Ein nützlicher Trick ist es, eine Datei genau so auszugeben, wie sie in einem bestimmten Commit aussah, ohne etwas auschecken zu müssen. Verwenden Sie die Syntax <commit>:<path>:

git show HEAD~3:src/index.js

Dies gibt die alte Version von index.js in Ihrem Terminal aus und lässt Ihren Working Tree unberührt — ideal zum Vergleichen oder Kopieren eines Code-Ausschnitts aus der Vergangenheit. Der Pfad wird vom Repository-Wurzelverzeichnis aus angegeben, nicht vom aktuellen Verzeichnis. Um die gestagte Version einer Datei zu untersuchen, verwenden Sie einen Doppelpunkt ohne Commit:

git show :src/index.js   # the file as currently staged in the index

Tags untersuchen

Wenn Sie git show auf einen annotierten Tag zeigen, gibt er die Tag-Nachricht und Tagger-Informationen aus, gefolgt vom Commit, auf den der Tag verweist:

git show v1.0.0

Dies ist der schnellste Weg, um zu sehen, wer einen Release-Tag erstellt hat und worauf er zeigt. Informationen zum Erstellen von Tags finden Sie unter git tag. Ein leichtgewichtiger Tag hat keine eigenen Metadaten, daher springt git show direkt zur Anzeige des zugehörigen Commits.

Mehrere Objekte gleichzeitig anzeigen

git show akzeptiert mehr als ein Argument und gibt jedes Objekt der Reihe nach aus, beginnend mit dem neuesten. Dies ist praktisch, um eine kleine Gruppe zusammenhängender Commits zu überprüfen, ohne durch die gesamte History scrollen zu müssen:

git show HEAD HEAD~1 v1.0.0

Nützliche Optionen

Standardmäßig enthält git show den vollständigen Diff. Die folgenden Optionen reduzieren oder formen die Ausgabe um:

git show --stat HEAD         # summary of files changed and line counts
git show --name-only HEAD    # just the changed file names
git show -s HEAD             # suppress the diff; show only the commit message
git show --pretty=oneline HEAD   # compact one-line header
git show --format="%an %s" -s HEAD   # custom format: author name + subject

Die --format- (und --pretty-)Platzhalter werden mit git log geteilt: %an ist der Autorenname, %s die Betreffzeile, %H der vollständige Hash und %ad das Autordatum.

Häufige Optionen

BefehlBeschreibung
git showZeigt den neuesten Commit mit seinem vollständigen Diff an.
git show <commit>Zeigt einen bestimmten Commit anhand von Hash, Branch oder Referenz an.
git show <commit>:<file>Gibt den Inhalt einer Datei zum Zeitpunkt des Commits aus.
git show --stat <commit>Fasst zusammen, welche Dateien sich wie viele Zeilen geändert haben.
git show --name-only <commit>Listet nur die Namen der geänderten Dateien auf.
git show -s <commit>Zeigt nur die Commit-Nachricht ohne Diff an.
git show <tag>Zeigt die Metadaten eines Tags und den Commit, auf den er verweist.

git show vs. git log und git diff

Diese drei Befehle überschneiden sich, dienen aber unterschiedlichen Zwecken. git log durchläuft einen Bereich von Commits und ist zum Durchsuchen der History gedacht. git diff vergleicht zwei beliebige Zustände. git show konzentriert sich auf ein Objekt und zeigt alles darüber — was es zur natürlichen Wahl macht, wenn Sie bereits wissen, welchen Commit Sie interessiert.

Ein gängiger Workflow ist, den Hash eines Commits mit git log oder git blame zu finden und diesen Hash dann an git show zu übergeben, um die vollständige Änderung im Detail zu lesen.

Übungen

Übung
Was kann 'git show' tun?
Was kann 'git show' tun?
Was this page helpful?