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>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 bd61ad98Elenca tutti i file che sono implicati in un commit
git show REVISION:path/to/fileMostra una versione specifica di un file. Sostituisci REVISION con un Git sha.
git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783Mostra il tag v2.0.0 ed esegue inoltre il commit su 6ef002d74cbbc099e1063728cab14ef1fc49c783
git show commitA...commitDRestituisce 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.