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

如果我有一个带有代表发行版本的标记的git存储库。

我怎么能得到两个标签之间的提交列表(如果可能的话,一个漂亮的格式)?

129528 次浏览

git log接受一个提交范围作为参数:

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

有关更多信息,请参阅git rev-parse手册页

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

如果你只是想要从tagB而不是tagA可达的提交:

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

git log --pretty=oneline ^tagA tagB

仅供参考:

git log tagA...tagB

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

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

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

要将输出设置为您喜欢的漂亮格式,请参阅git-log手册页

例子:

git log --pretty=format:"%h; author: %cn; date: %ci; subject:%s" tagA...tagB

如果您的团队使用描述性提交消息(例如。“票#12345 -更新依赖”;)在这个项目上,然后生成更新日志,因为最新的标签可以这样做:

git log --no-merges --pretty=format:"%s" 'old-tag^'...new-tag > /path/to/changelog.md
  • --no-merges从列表中省略合并提交
  • old-tag^指的是比标记的更早的上一次提交。如果您出于任何原因想要在列表底部看到带标记的提交,则此选项非常有用。(单引号只适用于mac OS上的iTerm)。

还要考虑这一点:

git range-diff tagA...tagB

来源:https://git-scm.com/docs/git-range-diff