【问题标题】:Git flow guideline for CI and CDCI 和 CD 的 Git 流程指南
【发布时间】:2018-04-07 18:11:17
【问题描述】:

我想将 CI 和 CD 与 VSTS 集成。 我正在通过不同的链接,但感到困惑,要遵循什么流程。附上git流图

在这个流程中。

  1. 集成版本将从开发分支发生?
  2. UAT 版本将从哪个分支发布?是师父的吗?
  3. 生产版本应该从主人那里发生吗?
  4. 如果我需要集成声纳或任何我需要集成的分支的静态分析工具。

请建议我在这种情况下可以使用的最佳 git 流是什么。我还附上了我们当前的 git 流。

【问题讨论】:

    标签: git continuous-integration azure-devops continuous-deployment git-flow


    【解决方案1】:

    主要分支的功能如下:

    • develop 分支供所有开发者管理自己的作品。
    • master 分支是管理生产版本的主分支。
    • release 分支是准备新版本的分支(如果您的情况需要 UAT)。

    对于带有分支模型的 git 流,您附加如下:

    • 所有开发人员都在develop 分支上工作,他们可以在自己的功能分支上开发新功能。特性分支的工作完成后,应该合并到develop分支。
    • 如果您的 git 流需要 UAT,您应该为每个新版本创建发布分支。比如当你准备发布1.0的版本时,你可以为UAT创建一个发布分支release-1.0。准备就绪后,将发布分支 release-1.0 合并到 master 分支以获取新的生产版本。
    • 对于一个版本,如果不需要做 UAT,那么直接将develop 合并到master 分支中进行新版本。

    更多关于git flow的解释,可以参考A successful Git branching model的帖子。

    所以对于你的问题:

    1. CI 构建应基于您的要求。也可以为 develop 分支和 master 分支设置 CI 构建。
    2. UAT 发生在发布分支上。通过后,将release分支合并到master分支中。
    3. 是的,生产版本发生在 master 分支上。
    4. 应在 CI 构建中执行分析(在由 CI 构建触发的同一分支中)。

    【讨论】:

    • 非常感谢您的详细解释。所以从master创建develop分支,从develop创建特性分支。就一个疑问。假设我有一个两个功能分支,并且我将两个功能合并为 uat 以开发分支。并且团队在合并后要求开发以包含新的变化。但是我删除了两个功能分支。那么此时我需要在发布中创建发布分支后包含新请求吗?或者我可以从开发中再次创建一个功能分支吗?
    • develop 是一个长期存在的分支,它应该合并到 master 中(如果没有 uat),并且 release 分支应该从 develop 分支创建。是的,功能分支是从开发分支创建的。
    • 如果您已经将两个功能分支合并到开发分支,但想创建一个新的发布分支,排除两个功能分支的更改,那么您可以遵循多个选项:选项1,创建功能分支以包含更改并重置开发分支,然后从开发创建一个发布分支;选项2,通过git checkout -b release-x.x commit在开发分支上从以前的提交(不包含功能更改)创建一个版本。
    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 2018-10-30
    • 2021-11-14
    相关资源
    最近更新 更多