我们有一个标准的Web项目,维护着这个项目的三个核心分支:主分支(Master)、测试分支(Beta)和开发分支(Develop)。以下是我们使用的流程/工作流总结:
(1) 需要新增功能/更新时,我们会创建一个新的Feature分支。
(2) 在该Feature分支上做出提交,并将该Feature分支合并到“开发”分支中;然后将“开发”分支发布到测试环境进行测试。
(3) 一旦新功能通过了测试/审批,就会在同一Feature分支上创建一个新的拉取请求;此新拉取请求旨在合并到“测试”分支中。
“测试”分支拥有我们所有“即将上线”的功能:实际上,我们直接将“测试”分支发布到生产环境中,当准备好之后,立即将“测试”分支合并到“主”分支中...通过这样做,“主”分支始终是生产环境中代码的副本。
问题:在上述第3步中,当我们尝试将新的Feature分支合并到“测试”分支时,拉取请求包括已合并到“开发”分支中的所有新提交。
例如:5个特性分支被单独合并到“开发”分支中(分支编号为1、2、3、4和5)。所有5个分支都经过了测试,但前4个存在漏洞。因此,分支“5”得到了批准,我们试图为该Feature分支创建一个拉取请求,并将其合并到“测试”中...但是当我们这样做时,拉取请求包括所有5个特性分支...而不仅仅是分支“5”的提交。
我们一定做错了!我们该如何修复我们的流程/工作流?
(1) 需要新增功能/更新时,我们会创建一个新的Feature分支。
(2) 在该Feature分支上做出提交,并将该Feature分支合并到“开发”分支中;然后将“开发”分支发布到测试环境进行测试。
(3) 一旦新功能通过了测试/审批,就会在同一Feature分支上创建一个新的拉取请求;此新拉取请求旨在合并到“测试”分支中。
“测试”分支拥有我们所有“即将上线”的功能:实际上,我们直接将“测试”分支发布到生产环境中,当准备好之后,立即将“测试”分支合并到“主”分支中...通过这样做,“主”分支始终是生产环境中代码的副本。
问题:在上述第3步中,当我们尝试将新的Feature分支合并到“测试”分支时,拉取请求包括已合并到“开发”分支中的所有新提交。
例如:5个特性分支被单独合并到“开发”分支中(分支编号为1、2、3、4和5)。所有5个分支都经过了测试,但前4个存在漏洞。因此,分支“5”得到了批准,我们试图为该Feature分支创建一个拉取请求,并将其合并到“测试”中...但是当我们这样做时,拉取请求包括所有5个特性分支...而不仅仅是分支“5”的提交。
我们一定做错了!我们该如何修复我们的流程/工作流?