Ho bisogno di un comando idraulico per stampare il messaggio di commit di un determinato commit - niente di più, niente di meno.
Ho bisogno di un comando idraulico per stampare il messaggio di commit di un determinato commit - niente di più, niente di meno.
Risposte:
Non è "idraulico", ma farà esattamente quello che vuoi:
$ git log --format=%B -n 1 <commit>
Se hai assolutamente bisogno di un comando "idraulico" (non sei sicuro del perché sia un requisito), puoi usare rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Anche se rev-list
stamperà anche il commit sha (sulla prima riga) oltre al messaggio di commit.
%s%b
invece di %B
(su un box Linux)
%B
è un identificatore corretto (almeno, in Git 1.7.2, non sicuro di quando è stato aggiunto).
%B
è stato aggiunto qualche tempo dopo l'1.7.1 (probabilmente nell'1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Questo ti darà il messaggio di commit e nessun commit sha, e puoi "pipe". In realtà lo uso come parte del mio script CI.
git show
è più un comando idraulico di git log
, e ha le stesse opzioni di formattazione:
git show -s --format=%B SHA1
%s
invece di %B
.
Non 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 è "ultimo riepilogo" 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.)
Questo ti darà un elenco molto compatto di tutti i messaggi per un periodo di tempo specificato.
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
Ho iniziato a usare
git show-branch --no-name <hash>
Sembra essere più veloce di
git show -s --format=%s <hash>
Entrambi danno lo stesso risultato
git show -s --oneline <commit>