我需要一个管道命令来打印一个给定提交的提交消息——不多也不少。
它不是“管道”,但它会做你想要的:
$ git log --format=%B -n 1 <commit>
如果你绝对需要一个“管道”命令(不确定为什么这是一个要求),你可以使用rev-list:
rev-list
$ git rev-list --format=%B --max-count=1 <commit>
尽管rev-list除了提交消息之外还会打印出commit sha(在第一行)。
不是管道,但我有这些在我的。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比git log更像是一个管道命令,并且具有相同的格式化选项:
git show
git log
git show -s --format=%B SHA1
我用shortlog来表示:
$ git shortlog master.. Username (3): Write something Add something Bump to 1.3.8
我开始使用
git show-branch --no-name <hash>
它似乎比
git show -s --format=%s <hash>
两者都给出了相同的结果
实际上,我写了一个小工具来查看所有回购的状态。你可以在github上找到它。
在git中单独获得我的最后提交消息
git log --format=%B -n 1 $(git log -1 --pretty=format:"%h") | cat -
git-rev-list是让你打印提交消息的管道命令。
git-rev-list
像这样使用它。
git rev-list --format=%B --max-count=1 <commit> | tail +2
--format=%B
%s
%n%n
%b
--max-count=1
<commit>
sha
HEAD
branch-name
tag-name
branch1...branch2
| tail +2
它比git log或git show快得多。