目前,我们正在使用 GitHub flow(特性分支)策略。然而,这种策略存在一个问题,有时候某些功能在发布队列中排队等待。例如:
- 我已经将我的特性合并到开发(或主要,我们仅有的)分支,并部署到测试环境进行测试。
- 同时,我们想要开发或修复一些高优先级的错误/功能。但是,如果没有从开发分支还原早期的代码,我无法做到这一点。
为了解决这个问题,我正在尝试实现 GitFlow 分支策略。但是,我认为可能会出现与上述类似的问题,如下所述。
- 我创建了一个新的特性分支,完成了我的开发,并将其合并到 develop 分支中。
- 我们将几个更多的特性合并到 develop 中。
- 创建一个新的发布分支(称为 release-A),然后将其部署到测试环境进行测试。
- 与此同时,又有一个高优先级的新功能请求。
- 现在,如果我从最新的 develop 分支创建一个新分支,它就会包含其他特性(release-A),我不想将其部署到生产环境(或合并到主分支)。
问题:
- 相比于从最新的develop分支进行分支,我应该从已经在PROD中的提交中进行分支吗?
- 如果是这样,我应该从功能分支创建一个发布吗?
- 如何在测试中部署此功能,以便可以并行测试或同时测试(发布-A和此新功能)。后一点不是很重要。
注意: 我正在使用Microsoft Azure Data Factory,因此我需要合并一些更改到develop分支(与Azure Data Factory相关),否则我将无法发布这些更改(无法创建ARM模板以部署到其他环境)。