Answers:
它不是“管道”,但可以完全满足您的要求:
$ git log --format=%B -n 1 <commit>
如果您绝对需要“管道”命令(不确定为什么要这样做),则可以使用rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
尽管rev-list
除了提交消息外,还将打印出提交信息(在第一行)。
%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 -
这将为您提供提交消息,而没有提交sha,您可以对其进行“管道传输”。实际上,我将此作为CI脚本的一部分。
git show
比更具说服力git log
,并且具有相同的格式选项:
git show -s --format=%B SHA1
%s
代替%B
。
没有管道,但是我的.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 -s --oneline <commit>