0

在我的公司,我们需要在功能分支准备就绪时进行部署 - 无需等待。为此,我想出了这个开发/ gitflow过程:保持分支机构与频繁部署同步

Our dev process

的过程会像这样:

  1. 开发者分支“释放”分支和作品在功能分支上。
  2. 工作时,开发人员可以通过合并到dev进行本地测试。这就像分级,但QA不会触及这个环境。
  3. 当开发人员在本地进行测试并完成工作时,他们将其合并到我们的staging分支中,并向release分支发出合并请求。 [绿线#1]
  4. 在登录staging分支后,登台服务器会自动更新并进行QA测试。 [Green line#2]
  5. 如果QA批准它,他们接受合并请求,所有测试的东西都应该在release分支中。 [虚线绿色]
  6. release分支发生变化后,我们将其合并到master(生产)分支中并进行部署。
  7. 我的问题:部署投入生产后,我们会合并productionstagingdev吗? [红线]

我担心的是,这个过程会导致大量代码冲突时合并production向下。特别是如果我们有一些正在从质量保证 - >开发 - >质量保证一遍又一遍地转移的分段。

回答

1

这个流程中有很多噪音,我担心的是它过于复杂的名义上完成了Git Flow。我的建议一般是尽可能简化这个流程 - 如果你需要一个单独的“分段”分支,然后创建它 - 但总的来说:

  • 生产就绪的代码居住在主。
  • 开发人员的工作主要依靠主人。他们可以在本地测试他们的功能分支,如果他们不能,那应该尽快修复,而不是晚些时候。
  • 需要QA测试的功能分支被推送到分段。理想情况下,除非QA同意处理更多内容,否则此处只存在一个功能。
  • 分级测试达到满意后,则合并掌握并投入生产。

鉴于多种功能分支发生的可能性正准备在正好同时是罕见的,以这种方式简化了发布周期,这样没有歧义与QA存在(因为它永远只能测试一次一个功能分支)将简化很多事情。

+0

同意这一点。我们考虑过“以环境为中心”的分支,比如'dev','qa','stage',但是决定不支持它。这样做会使'git-flow'移动得太远,这对我们很好,并且意味着整个流程(基本上构成了从头开始构建git流的替代方案)需要由我们编写/完善(不容易的任务)。 – vikingsteve