Мені потрібна команда сантехніки, щоб надрукувати повідомлення про фіксацію однієї заданої комісії - ні більше, ні менше.
Мені потрібна команда сантехніки, щоб надрукувати повідомлення про фіксацію однієї заданої комісії - ні більше, ні менше.
Відповіді:
Це не "сантехніка", але вона зробить саме те, що ви хочете:
$ git log --format=%B -n 1 <commit>
Якщо вам абсолютно потрібна команда "сантехніка" (не впевнені, чому це вимога), ви можете використовувати rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Хоча rev-list
також буде надруковано sha sha (у першому рядку) на додаток до повідомлення.
%s%b
замість %B
(на скриньці Linux)
%B
є правильним специфікатором (принаймні, в Git 1.7.2, не впевнений, коли він був доданий).
%B
додавали десь після 1.7.1 (ймовірно, в 1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Це дасть вам повідомлення про фіксацію і не виконує ша, і ви можете "передавати" це. Я фактично використовую це як частину мого сценарію CI.
Не сантехніка, але я маю це у своїй .gitconfig:
lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'
Це "останній підсумок" та "останнє повідомлення". Ви можете надати зобов’язання, щоб отримати підсумок або повідомлення про це. (Я використовую 1.7.0.5, тому не маю% B.)
Це дасть вам дуже компактний перелік усіх повідомлень за визначений час.
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
Я почав використовувати
git show-branch --no-name <hash>
Здається, це швидше, ніж
git show -s --format=%s <hash>
Обидва дають однаковий результат
git show -s --oneline <commit>