在git中打印给定提交的提交消息

时间:2010-07-28 20:36:46

标签: git commit-message

我需要一个管道命令来打印一个给定提交的提交消息 - 仅此而已。

8 个答案:

答案 0 :(得分:257)

这不是“管道”,但它会完全符合您的要求:

$ git log --format=%B -n 1 <commit>

如果你绝对需要一个“管道”命令(不确定为什么这是一个要求),你可以使用rev-list

$ git rev-list --format=%B --max-count=1 <commit>

虽然rev-list除了提交消息外还会打印出提交sha(在第一行)。

答案 1 :(得分:110)

git showgit log更像是一个管道命令,并且具有相同的格式选项:

git show -s --format=%B SHA1

答案 2 :(得分:15)

这将为您提供任何指定时间内所有消息的紧凑列表。

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT

答案 3 :(得分:12)

不管道,但我在.gitconfig中有这些:

lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'

这是“最后的摘要”和“最后的消息”。您可以提交提交以获取该提交的摘要或消息。 (我使用的是1.7.0.5所以没有%B。)

答案 4 :(得分:2)

我为此使用简短日志:

$ git shortlog master..
Username (3):
      Write something
      Add something
      Bump to 1.3.8 

答案 5 :(得分:1)

在 git 中单独获取我的最后提交消息

src/customA src/customB src/customC src/mainA src/mainB

答案 6 :(得分:1)

使用 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>shaHEADbranch-nametag-namebranch1...branch2
  • | tail +2:第一行是提交sha,跳过

它比 git loggit show 快很多。

答案 7 :(得分:0)

我开始使用

git show-branch --no-name <hash>

它似乎比

git show -s --format=%s <hash>

两者给出相同的结果