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

时间:2011-05-02 23:03:58

标签: git

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

如何获取两个标签之间的提交列表(如果可能,请使用漂亮的格式)?

7 个答案:

答案 0 :(得分:203)

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

如果您只是希望从tagB可以访问提交,而不是tagA:

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

git log --pretty=oneline ^tagA tagB

答案 1 :(得分:23)

git log将一系列提交作为参数:

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

有关详情,请参阅git rev-parse {{1}}。

答案 2 :(得分:16)

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

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

答案 3 :(得分:14)

要将输出设置为您首选的漂亮格式,请参阅git-log的{​​{3}}。

示例:

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

答案 4 :(得分:3)

供参考:

git log tagA...tagB

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

答案 5 :(得分:1)

还要考虑这一点:

git range-diff tagA...tagB

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

答案 6 :(得分:0)

如果您的团队在此项目上使用描述性提交消息(例如,“Ticket #12345 - 更新依赖项”),则生成变更日志,因为最新的标记可以这样完成:

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