Git-show

Cos'è git-show?

git-show è un'utilità da riga di comando utilizzata per visualizzare dettagli estesi sugli oggetti Git come blob, alberi, tag e commit. git-show ha un comportamento specifico per ciascun tipo di oggetto.

I tag mostrano il messaggio di tag e altri oggetti inclusi nel tag. Gli alberi mostrano i nomi e il contenuto degli oggetti di un albero. I blob mostrano il contenuto diretto del blob. I commit mostrano un messaggio di log del commit e un output delle differenze delle modifiche nel commit.

Gli oggetti Git sono tutti accessibili tramite i riferimenti. Per impostazione predefinita, git-show agisce in base al riferimento HEAD, che punta sempre all'ultimo commit del branch corrente. Pertanto, puoi usare git-show per visualizzare il messaggio di log e l'output delle differenze dell'ultimo commit.

Opzioni di git-show

<object>…

Può essere trasmesso un riferimento a un oggetto o a un elenco di oggetti per esaminare questi oggetti specifici. Se non viene trasmesso alcun oggetto esplicito, git-show utilizza per impostazione predefinita il riferimento HEAD.

--pretty[=<format>]

L'opzione pretty accetta un valore di formato secondario che può essere uno dei seguenti: oneline, short, medium, full, fuller, email, raw e format:<string>. Se omesso, il formato viene configurato su medium per impostazione predefinita. Ogni opzione di formato rappresenta un modello diverso in base al modo in cui Git formatta l'output del comando show. L'opzione <code>oneline</code> può essere molto utile per mostrare un elenco di commit

--abbrev-commit

Questa opzione riduce la lunghezza degli ID dei commit di output. Gli ID dei commit hanno una lunghezza di 40 caratteri e possono essere difficili da visualizzare su schermate del terminale strette. Questa opzione unita a --pretty=oneline può produrre un output di git log molto conciso.

--no-abbrev-commit

Mostra sempre l'ID di commit completo (40 caratteri). Questa opzione ignora --abbrev-commit e qualsiasi altra opzione che accorci gli ID di commit, come l'opzione --oneline format

--oneline

È una scorciatoia del comando espanso --pretty=oneline --abbrev-commit

--encoding[=<encoding>]

La codifica dei caratteri nei messaggi di log di Git è configurata per impostazione predefinita su UTF-8. L'opzione di codifica può essere impostata su un output di codifica dei caratteri diverso. Ciò è utile se si usa Git in un ambiente con una codifica dei caratteri diversa, ad esempio un terminale in lingua asiatica.>

--expand-tabs=<n>--expand-tabs--no-expand-tabs

Queste opzioni sostituiscono i caratteri di tabulazione con spazi nell'output del messaggio di log. Il valore n può essere impostato per configurare il numero di caratteri di spaziatura in cui si espandono le tabulazioni. Senza un valore n esplicito, le tabulazioni si espanderanno fino a 8 spazi. --no-expand-tabs equivale a n=0

--notes=<ref>--no-notes

Git dispone di un sistema di annotazione che consente di allegare dei metadati "note" arbitrari agli oggetti. Questi dati possono essere nascosti o filtrati quando si usa git-show.

--show-signature

Questa opzione conferma che al commit è stata apposta una firma crittografata e la trasmette a un sottocomando gpg.

Formati pretty per git-show


L'opzione --pretty descritta sopra accetta diverse opzioni secondarie per modificare il formato dell'output di git-show. Queste opzioni secondarie sono elencate di seguito insieme al modello di esempio

Oneline

<sha1> <title line>

Oneline tenta di compattare quante più informazioni possibile in un'unica riga

short

commit <sha1>
Author: <author>
<title line>

Medio

commit <sha1>
Author: <author>
Date: <author date>
<title line>
<full commit message>

full

commit <sha1>
 Author: <author>
 Commit: <committer>
<title line>
<full commit message>

fuller

commit <sha1>
Author: <author>
AuthorDate: <author date>
Commit: <committer>
CommitDate: <committer date>
<title line>
<full commit message>

E-mail

From <sha1> <date>
From: <author>
Date: <author date>
Subject: [PATCH] <title line>
<full commit message>

raw

Il formato raw ignora le altre opzioni di formattazione trasmesse a git-show e restituisce come output il commit esattamente come è stato archiviato nell'oggetto. Tale formato ignorerà --abrev e --no-abbrev e mostrerà sempre i commit principali.

Formato

format consente di specificare un formato di output personalizzato. Funziona in modo simile al comando printf del linguaggio C. L'opzione --pretty=format accetta un valore secondario di una stringa di modello. Tale modello ha accesso a variabili segnaposto che verranno compilate con i dati dell'oggetto di commit. Questi segnaposto sono elencati di seguito:

  • %H: hash del commit

  • %h: hash del commit abbreviato

  • %T: hash dell'albero

  • %t: hash dell'albero abbreviato

  • %P: hash principali

  • %p: hash principali abbreviati

  • %an: nome dell'autore

  • %aN: nome dell'autore

  • %ae: e-mail dell'autore

  • %aE: e-mail dell'autore

  • %ad: data dell'autore (il formato rispetta l'opzione --date=)

  • %aD: data dell'autore, stile RFC2822

  • %ar: data dell'autore, relativa

  • %at: data dell'autore, timestamp UNIX

  • %ai: data dell'autore, formato ISO 8601

  • %cn: nome del committer

  • %cN: nome del committer

  • %ce: e-mail del committer

  • %cE: e-mail del committer

  • %cd: data del committer

  • %cD: data del committer, stile RFC2822

  • %cr: data del committer, relativa

  • %ct: data del committer, timestamp UNIX

  • %ci: data del committer, formato ISO 8601

  • %d: nomi di riferimento, come l'opzione --decorate di git-log(1)

  • %e: codifica

  • %s: oggetto

  • %f: riga dell'oggetto sanificata, adatta a un nome file

  • %b: corpo

  • %N: note del commit

  • %gD: selettore reflog, ad esempio refs/stash@{1}

  • %gd: selettore reflog abbreviato, ad esempio stash@{1}

  • %gs: oggetto reflog

  • %Cred: passa al colore rosso

  • %Cgreen: passa al colore verde

  • %Cblue: passa al colore blu

  • %Creset: ripristina il colore

  • %C(...): specifica del colore, come descritto nell'opzione di configurazione color.branch.*

  • %m: segno sinistro, destro o confine

  • %n: nuova riga

  • %%: % approssimativa

  • %x00: stampa un byte da un codice esadecimale

  • %w([[,[,]]]): cambia il ritorno a capo, come l'opzione -w di git-shortlog

Esempi di git-show

git show --pretty="" --name-only bd61ad98

Elenca tutti i file che sono implicati in un commit

git show REVISION:path/to/file

Mostra una versione specifica di un file. Sostituisci REVISION con un Git sha.

git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783

Mostra il tag v2.0.0 ed esegue inoltre il commit su 6ef002d74cbbc099e1063728cab14ef1fc49c783

git show commitA...commitD

Restituisce come output tutti i commit nell'intervallo compreso tra commitA e commit D

Riepilogo

git-show è un comando molto versatile per l'analisi degli oggetti in un repository Git. Può essere utilizzato per esaminare file specifici in revisioni specifiche. L'analisi di un intervallo di commit con git-show restituirà come output tutti i singoli commit compresi in tale intervallo. git-show può essere uno strumento utile per creare note sulla patch e tenere traccia delle modifiche in un repository.

Consigliata per te

Blog di Bitbucket

Percorso di apprendimento DevOps

Scopri di più su Git

Trova altre guide e risorse su Git in questo hub.