我们正在尝试遵循gitflow分支模型,但有所改变。
我们有四个服务器环境,产品可以部署到每个服务器上,每个服务器都有自己的用途:开发、内部测试、外部测试和生产。
普通的gitflow分支
我们有四个服务器环境,产品可以部署到每个服务器上,每个服务器都有自己的用途:开发、内部测试、外部测试和生产。
- DevServer,开发人员在开发时测试其不同的功能。开发人员无法在本地计算机上进行测试,他们必须在DevServer上进行更改才能进行测试
- TestServer,QA测试人员在开发人员完成后测试多个功能
- ReleaseServer,在将发布内容移至生产之前,对发布内容进行隔离测试
- ProductionServer。生产服务器
普通的gitflow分支
- develop(开发分支)
- master(主分支,与“ProductionServer”匹配)
- featureXXX(功能分支)
- releaseXXX(每周发布的版本部署到“ReleaseServer”)
但还有这两个不符合标准的分支可能需要更改...
- dev-release(DevServer的副本)
- test-release(TestServer的副本)
然后按照以下步骤进行:
- 开发人员从“develop”创建他们的“featureXXX”
- 多个开发人员将其不同的“features”合并到“dev-release”分支中,“dev-release”分支发布到“DevServer”,所有开发人员可以在此测试其不同的功能。并非所有这些功能都将包含在同一下一个版本中。
- 一旦开发人员对上述开发测试满意,他们将他们的“featureXXX”合并到“test-release”分支中,并将其部署到“TestServer”。这里的不是所有功能都将成为同一下一个版本的一部分。
- 一旦在“TestServer”上对featureXXX进行了测试,开发人员就可以将其关闭到“develop”中。
- 然后,开发人员可以创建新的“releaseXXX”或将其“featureXXX”合并到现有的“releaseXXX”中。
- “releaseXXX”分支被部署到“ReleaseServer”并进行测试。
- 一旦“releaseXXX”测试得到批准,“releaseXXX”就会合并到develop和master中,并部署到“ProductionServer”
我们是否搞砸了整个gitflow模型?
这是我们的分支流程:![在此输入图片描述](https://istack.dev59.com/IURfQ.webp)