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

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


Git日志以一个提交范围作为参数:

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

更多信息请参见git rev-parse的手册页。


git log——pretty=oneline tagA…tagB(即三个点)

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

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

or

挖出


FYI:

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

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

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