【问题标题】:How to mark "release" commits in Git?如何在 Git 中标记“发布”提交?
【发布时间】:2018-04-24 20:08:15
【问题描述】:

我正在 git repo 中编辑 master 分支。

我不时地测试一个提交并发现它运行良好。然后我可能想将此类提交中的最后一个标记为 release

可以通过分支来完成,但是这样我需要切换分支、合并、切换回等等。

有没有更简单的方法可以将某些master 版本标记为版本

【问题讨论】:

  • 使用标签(轻量级或带注释的,尽管通常对于发布,带注释的标签更好,因为您可以存储额外的发布数据和/或 GPG 签名)。
  • 您可以创建标签,无需任何切换和合并。如果您在谈论 GitHub,则可以使用 UI 从特定提交创建发布。
  • @janos 我不想为每个版本都发明一个新的标签名称。我希望它们用一些稳定的标识符来表示,比如分支名称。我不是专门说 GitHub

标签: git branch release git-branch devops


【解决方案1】:

你可以考虑注释,如git notes

您可以使用“发布”注释和move that marker(通过复制和删除旧注释)标记您想要的任何提交

【讨论】:

    【解决方案2】:

    另一个选项 - 除了使用提到的git notes 之外,还使用git tag -a(它创建一个带注释的标签),但使用别名来自动化整个过程。

    以下别名可以添加到~/.gitconfig

    release = !git tag -a release-$(git tag -l "release-*"|wc -l|sed 's/ //g')-$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD)
    

    它将创建一个带注释的标签,格式如下:

    release-<release number>-<branch name>-<commit hash>
    

    请注意,系统会提示您输入不能为空的标签消息。当然,您可以自定义标签格式以满足您的需要。每次调用都会创建新标签。如果您更喜欢提交而不是标签 - 它也可以使用。

    此外,在发布过程中,好主意是遵循git flow 规则 - 在原始版本中或根据您的需要进行更改。当使用多个分支并从 master 发布时,您可以配置一个钩子,当一个分支合并到 master 时,它将自动发布(标签、注释等)。

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 2023-03-11
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2014-04-13
      相关资源
      最近更新 更多