保持分支与频繁部署同步

时间:2016-08-15 02:31:26

标签: git development-environment continuous-deployment git-flow continuous-delivery

在我的公司,我们需要在功能分支准备好上线时进行部署 - 无需等待。为此,我想出了这个dev / gitflow过程:

Our dev process

这个过程会像这样工作:

  1. 开发人员从“发布”分支分支出来并在功能分支上工作。
  2. 在工作时,开发人员可以通过合并dev对其进行本地测试。这就像分期,但质量保证不会触及这种环境。
  3. 当开发人员在本地测试并完成工作时,他们会将其合并到我们的staging分支中,并向release分支发出拉取请求。 [绿线#1]
  4. 登录staging分支后,登台服务器会自动更新并对其进行QA测试。 [绿线#2]
  5. 如果QA批准它,他们接受Pull请求,现在测试的所有内容都应该在release分支中。 [点缀绿线]
  6. 只要release分支发生变更,我们就会将其合并到master(生产)分支并进行部署。
  7. 我的问题:在部署到生产环境后,我们会将production合并回stagingdev吗? [红线]
  8. 我担心的是,在向下合并production时,此过程会导致很多代码冲突。特别是如果我们有从QA转移到舞台上的东西 - > dev - >质量保证一遍又一遍。

1 个答案:

答案 0 :(得分:1)

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

  • 生产就绪代码存在于主数据库中。
  • 开发人员基于master工作。他们可以测试他们的功能分支本地,如果他们不能,那就应该尽快修复。
  • 需要QA测试的功能分支被推送到分段。理想情况下,除非QA同意处理更多功能,否则此处一次只能存在一个功能。
  • 在测试满意后,然后将其合并为主人并发布到生产中。

鉴于在完全同时准备好多个特征分支的可能性很少,以这种方式简化发布周期,以便QA不存在歧义(因为它&#39) ; s一次只测试一个功能分支)会简化很多事情。