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

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


当前回答

如果您的团队使用描述性提交消息(例如。"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

如果您的团队使用描述性提交消息(例如。"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-log的手册页。

例子:

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

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

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

FYI:

git log tagA...tagB

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