在git中获取两个标签之间的提交列表

287

如果我有一个使用标签表示版本发布的git仓库。

我如何获取两个标签之间提交的列表(如果可能的话还要带有漂亮的格式)?

7个回答

338

git log --pretty=oneline tagA...tagB(即三个点):

如果你只想要从tagB可达的提交,但不包括tagA:

git log --pretty=oneline tagA..tagB(即两个点)

或者

git log --pretty=oneline ^tagA tagB


34

要比较当前分支的最新提交和一个标签:

git log --pretty=oneline HEAD...tag

32

git log作为参数需要一系列提交记录:

git log --pretty=[your_choice] tag1..tag2

请查看git rev-parse的手册页了解更多信息。


25
为了将输出样式设置为您偏好的漂亮格式,请参阅git-log的手册页中与pretty formats相关的部分。
示例:
git log --pretty=format:"%h; author: %cn; date: %ci; subject:%s" tagA...tagB

5

4

提示:

git log tagA...tagB

提供标准的日志输出范围。

4

如果您的团队在此项目中使用描述性提交消息(例如:"Ticket #12345 - 更新依赖项"),则可以按照以下方式生成自最新标签以来的更改日志:

git log --no-merges --pretty=format:"%s" 'old-tag^'...new-tag > /path/to/changelog.md
  • --no-merges会从列表中省略合并提交
  • old-tag^指的是在标记之前的上一个提交。如果您希望出于任何原因将已标记的提交放在列表底部,则此选项非常有用。(仅在Mac OS上的iTerm需要使用单引号)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接