Saya memerlukan perintah plumbing untuk mencetak pesan commit dari commit yang diberikan - tidak lebih, tidak kurang.
Saya memerlukan perintah plumbing untuk mencetak pesan commit dari commit yang diberikan - tidak lebih, tidak kurang.
Jawaban:
Ini bukan "plumbing", tetapi itu akan melakukan apa yang Anda inginkan:
$ git log --format=%B -n 1 <commit>
Jika Anda benar-benar membutuhkan perintah "ledeng" (tidak yakin mengapa itu persyaratan), Anda dapat menggunakan rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Meskipun rev-list
juga akan mencetak komit sha (di baris pertama) di samping pesan komit.
%s%b
sebagai ganti %B
(pada kotak Linux)
%B
adalah specifier yang benar (setidaknya, di Git 1.7.2, tidak yakin kapan ditambahkan).
%B
ditambahkan sekitar 1,7.1 (mungkin dalam 1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Itu akan memberi Anda pesan komit dan tidak ada komit, dan Anda dapat "menyalurkan" itu. Saya sebenarnya menggunakan ini sebagai bagian dari skrip CI saya.
git show
lebih merupakan perintah plumbing daripada git log
, dan memiliki opsi format yang sama:
git show -s --format=%B SHA1
%s
sebagai ganti %B
.
Bukan pipa ledeng, tapi saya punya ini di .gitconfig saya:
lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'
Itu "ringkasan terakhir" dan "pesan terakhir". Anda dapat memberikan komit untuk mendapatkan ringkasan atau pesan dari komit itu. (Saya menggunakan 1.7.0.5 jadi tidak memiliki% B.)
Ini akan memberi Anda daftar yang sangat ringkas dari semua pesan untuk waktu tertentu.
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
Saya mulai menggunakan
git show-branch --no-name <hash>
Tampaknya lebih cepat daripada
git show -s --format=%s <hash>
Keduanya memberikan hasil yang sama
git show -s --oneline <commit>