【问题标题】:Get commit list between tags in git获取git中标签之间的提交列表
【发布时间】:2011-08-17 07:58:00
【问题描述】:

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

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

【问题讨论】:

    标签: git


    【解决方案1】:

    考虑一下:

    git range-diff tagA...tagB
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          如果您只想从 tagB 而不是 tagA 访问提交:

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

          git log --pretty=oneline ^tagA tagB

          【讨论】:

            【解决方案5】:

            要将输出样式设置为您喜欢的漂亮格式,请参阅man page for git-log

            例子:

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

            【讨论】:

              【解决方案6】:

              仅供参考:

              git log tagA...tagB
              

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

              【讨论】:

                【解决方案7】:

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

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

                有关更多信息,请参阅man page git rev-parse

                【讨论】:

                  猜你喜欢
                  • 2021-01-19
                  • 2019-10-17
                  • 2014-04-01
                  • 1970-01-01
                  • 2017-04-22
                  • 1970-01-01
                  • 2018-05-26
                  • 2013-09-11
                  • 1970-01-01
                  相关资源
                  最近更新 更多