Git-show
Was ist git-show?
git-show
ist ein Befehlszeilen-Dienstprogramm, mit dem erweiterte Details zu Git-Objekten wie Blobs, Strukturen, Tags und Commits angezeigt werden können. git-show
zeigt je nach Objekttyp ein spezifisches Verhalten.
Tags zeigen die Tag-Nachricht und andere im Tag enthaltene Objekte an. Strukturen zeigen die Namen und den Inhalt von Objekten in einer Struktur an. Blobs zeigen den direkten Inhalt des Blobs an. Commits zeigen eine Commit-Protokollnachricht an sowie eine Diff-Ausgabe zu den Änderungen im Commit.
Auf alle Git-Objekte kann über Referenzen zugegriffen werden. Standardmäßig bezieht sich git-show
auf die HEAD-Referenz. Die HEAD-Referenz zeigt stets auf den letzten Commit des aktuellen Branch. Daher kannst du mithilfe von git-show
die Protokollnachricht und die Diff-Ausgabe des letzten Commit anzeigen.
Git-show – Optionen
Eine Referenz auf ein Objekt oder eine Liste von Objekten kann übergeben werden, um diese spezifischen Objekte zu untersuchen. Wenn keine expliziten Objekte übergeben werden, wird git-show
standardmäßig auf die HEAD Referenz gesetzt.
--pretty[=
Die Option --pretty nimmt einen der folgenden Sekundärformatwerte an: oneline, short, medium, full, fuller, email, raw
oder format:
. Andernfalls wird das Format standardmäßig auf medium
gesetzt. Jede Formatoption ist eine unterschiedliche Vorlage und zeigt, wie Git die Anzeigeausgabe formatiert. Die Option oneline
eignet sich für die Anzeige einer Liste von Commits.
--abbrev-commit
Diese Option verkürzt die Länge der Ausgabe-Commit-IDs. Commit-IDs bestehen aus 40 Zeichen und lassen sich schlecht auf schmalen Terminal-Bildschirmen lesen. Diese Option in Kombination mit --pretty=oneline
erzeugt eine komprimierte git log
-Ausgabe.
--no-abbrev-commit
Zeigt stets die 40 Zeichen lange Commit-ID an. Ignoriert damit --abbrev-commit
und andere Optionen, die Commit-IDs abkürzen wie --oneline format
--oneline
Es handelt sich um ein Kürzel für die Verwendung des erweiterten Befehls --pretty=oneline --abbrev-commit
--encoding[=
Die Zeichenkodierung in Git-Protokollnachrichten wird standardmäßig auf UTF-8 gesetzt. Die Kodierungsoption kann zu einer anderen Zeichenkodierungsausgabe wechseln. Das ist sinnvoll, wenn du mit Git in einer Umgebung mit verschiedenen Zeichenkodierungen arbeitest, wie das asiatische Sprachterminal.
>--expand-tabs=
--expand-tabs
--no-expand-tabs
Diese Optionen ersetzen in der Protokollnachricht die Tabulatorzeichen durch Leerzeichen. Über den Wert n
kannst du festlegen, auf wie viele Leerzeichen die Tabulatoren erweitert werden sollen. Ohne eine explizite Angabe des n-Werts werden die Tabulatorzeichen auf 8 Leerzeichen erweitert. --no-expand-tabs
entspricht n=0
--notes=
--no-notes
Git verfügt über ein Notizsystem, bei dem beliebige Notiz-Metadaten an Objekte angehängt werden können. Diese Daten kannst du bei der Verwendung von git-show
ausblenden oder filtern.
--show-signature
Diese Option überprüft, ob das Commit mit einer verschlüsselten Signatur unterzeichnet ist, indem sie es an einen gpg-Unterbefehl weitergibt.
Pretty-Formate für git-show
Die oben erläuterte Option --pretty
akzeptiert verschiedene Sekundäroptionen, um das Format der git-show
-Ausgabe zu formulieren. Diese Sekundäroptionen werden im Folgenden mit Beispielvorlagen aufgelistet.
- oneline
Oneline versucht so viele Informationen wie möglich in einer einzelnen Zeile zu komprimieren.
- short
commit
Author:
- medium
commit
Author:
Date:
- full
commit
Author:
Commit:
- fuller
commit
Author:
AuthorDate:
Commit:
CommitDate:
- email
From
From:
Date:
Subject: [PATCH]
- raw
Das Format raw ignoriert andere direkte Formatierungsoptionen, die angit-show
übergegeben werden, und gibt den Commit genau so aus, wie er im Objekt gespeichert ist. Raw übergeht--abrev
und--no-abbrev
und zeigt stets die übergeordneten Commits an.
- format:
format aktiviert die Spezifizierung eines benutzerdefinierten Ausgabeformats. Der Befehl funktioniert ähnlich wie der Befehlprintff
der Programmiersprache C. Die Option--pretty=format
nimmt einen sekundären Wert einer Vorlagezeichenfolge an. Die Vorlage hat Zugriff auf Platzhaltervariablen, die mit Daten vom Commit-Objekt gefüllt werden. Diese Platzhalter werden im Folgenden aufgelistet:
• %H: Commit-Hash
• %h: abgekürzter Commit-Hash
• %T: Baum-Hash
• %t: abgekürzter Baum-Hash
• %P: übergeordnete Hashes
• %p: abgekürzte übergeordnete Hashes
• %an: Name des Autors
• %aN: Name des Autors
• %ae: E-Mail des Autors
• %aE: E-Mail des Autors
• %ad: Datum des Autors (laut Format: --date= Option)
• %aD: Datum des Autors, RFC2822-Format
• %ar: Datum des Autors, relativ
• %at: Datum des Autors, UNIX-Zeitstempel
• %ai: Datum des Autors, ISO 8601-Format
• %cn: Committer-Name
• %cN: Committer-Name
• %ce: Committer-E-Mail
• %cE: Committer-E-Mail
• %cd: Committer-Datum
• %cD: Committer-Datum, RFC2822-Format
• %cr: Committer-Datum, relativ
• %ct: Committer-Datum, UNIX-Zeitstempel
• %ci: Committer-Datum, ISO 8601-Format
• %d: Referenznamen wie die Option --decorate von git-log(1)
• %e: Verschlüsselung
• %s: Betreff
• %f: korrigierte Betreffzeile, geeignet für einen Dateinamen
• %b: Hauptteil
• %N: Commit-Notizen
• %gD: Reflog-Bereich, z. B. refs/stash@{1}
• %gd: gekürzter Reflog-Bereich, z. B. stash@{1}
• %gs: Reflog-Betreff
• %Cred: zur Farbe Rot wechseln
• %Cgreen: zur Farbe Grün wechseln
• %Cblue: zur Farbe Blau wechseln
• %Creset: Farbe zurücksetzen
• %C(...): Farbvorgabe wie unter der Konfigurationsoption color.branch.* beschrieben
• %m: linke, rechte oder Grenzmarkierung
• %n: neue Zeile
• %%: ein Raw-Wert in %
• %x00: Byte von Hexadezimalcode drucken
• %w([[, : Zeilenumbruch umschalten, wie die Option "-w" von git-shortlog[, ]]])
Beispiele für git-show
git show --pretty="" --name-only bd61ad98
Dies listet alle Dateien auf, die von einem Commit betroffen waren.
git show REVISION:path/to/file
Dies zeigt eine spezifische Version einer Datei an. Ersetze die REVISON
durch einen Git SHA.
git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783
Dies zeigt den v2.0.0-Tag an und führt einen Commit bei 6ef002d74cbbc099e1063728cab14ef1fc49c783
durch.
git show commitA...commitD
Dies gibt alle Commits im Bereich von commitA
bis commit D
aus.
Zusammenfassung
git-show
ist ein sehr vielseitiger Befehl zur Untersuchung von Objekten in einem Git-Repository. Er eignet sich dazu, spezifische Dateien bei spezifischen Überarbeitungen zu berücksichtigen. Bei der Überprüfung eines Commit-Bereichs mit git-show
wird jedes einzelne Commit im Bereich ausgegeben. Mit git-show
können außerdem Patch-Hinweise und das Verfolgen von Änderungen in einem Repository erstellt werden.