【问题标题】:Get commit list between tags in git在git中获取标签之间的提交列表
【发布时间】:2021-01-19 20:47:51
【问题描述】:

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

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

【问题讨论】:

    标签: git


    【解决方案1】:

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

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

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

    或者

    git log --pretty=oneline ^tagA tagB

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        有关详细信息,请参阅 man page 或 git rev-parse。

        【讨论】:

          【解决方案4】:

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

          例子:

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

          【讨论】:

            【解决方案5】:

            供参考:

            git log tagA...tagB
            

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

            【讨论】:

              【解决方案6】:

              还要考虑这个:

              git range-diff tagA...tagB
              

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

              【讨论】:

                【解决方案7】:

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

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

                【讨论】:

                  猜你喜欢
                  • 2011-08-17
                  • 2019-10-17
                  • 1970-01-01
                  • 2014-04-01
                  • 2017-04-22
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-09-17
                  相关资源
                  最近更新 更多