2010-07-28 21 views
136

Ho bisogno di un comando plumbing per stampare il messaggio di commit di un dato commit - niente di più, niente di meno.Stampa messaggio di commit di un dato commit in git

+1

Se qualcuno viene qui in cerca di un modo per stampare un messaggio a linea singola commettere, ma non si preoccupa circa l'hash che appare all'inizio, il seguente funziona: 'git show -s --oneline ' – waldyrious

+0

Dove dovremmo aggiungere la linea per stampare il messaggio di commit nella macchina del server? Intendevo quale file di hook? –

risposta

182

Non è "idraulico", ma farò esattamente quello che vuoi:

$ git log --format=%B -n 1 <commit> 

Se è assolutamente necessario un comando di "idraulico" (non so perché questo è un requisito), è possibile utilizzare rev-list:

$ git rev-list --format=%B --max-count=1 <commit> 

anche se rev-list sarà anche stampare la sha commit (sulla prima riga) in aggiunta al messaggio di commit.

+4

Ha funzionato perfettamente per me - ma ho usato '% s% b' invece di'% B' (su una macchina Linux) – adamk

+15

'% B' è uno specificatore corretto (almeno, in Git 1.7.2, non sono sicuro quando è stato aggiunto). – mipadi

+2

'% B' è stato aggiunto dopo 1.7.1 (probabilmente in 1.7.1.1). – mipadi

8
Non

impianto idraulico, ma ho questi nel mio .gitconfig:

lsum = log -n 1 --pretty=format:'%s' 
lmsg = log -n 1 --pretty=format:'%s%n%n%b' 

Questo è "l'ultima sintesi" e "ultimo messaggio". È possibile fornire un commit per ottenere il riepilogo o il messaggio di quel commit. (Sto usando 1.7.0.5 quindi non ho% B.)

10

Questo ti darà un elenco molto compatto di tutti i messaggi per un tempo specificato.

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT 
79

git show è più un comando idraulico di git log, e ha le stesse opzioni di formattazione:

git show -s --format=%B SHA1 
+9

E se si desidera solo la prima riga ("oggetto"), utilizzare ' % s' invece di '% B'. – ntc2

+8

(lo preferisco alla risposta "registro" o "elenco rev.", Poiché si tratta di un'operazione a commit singolo, anziché di un elenco limitato a 1 voce.) – Rich

Problemi correlati