【发布时间】:2017-03-28 10:08:45
【问题描述】:
我们有一个标准的 Web 项目,并为此项目维护 3 个核心分支:Master、Beta 和 Develop。以下是我们使用的流程/工作流程的摘要:
(1) 请求新功能/更新,因此我们创建了一个新功能分支。
(2) 对新的 Feature 分支进行提交,并将 Feature 分支合并到“Develop”分支中;然后将“开发”分支发布到要测试的测试环境。
(3) 一旦新特性被测试/批准,就会在同一个特性分支中提出一个新的拉取请求;这个新的拉取请求旨在合并到“Beta”分支中。
“Beta”分支具有我们所有的“准备上线”功能:事实上,我们将“Beta”分支直接发布到生产环境,当准备就绪时,我们会立即合并“Beta”分支到“主”分支....通过这样做,“主”分支始终是生产环境中代码的副本。
问题:在上面的第 3 步中,当我们尝试将新功能分支合并到“Beta”分支时,拉取请求包括已合并到“开发”分支的所有新提交。
示例:5 个功能分支单独合并到“开发”分支(分支标记为 1、2、3、4 和 5)。所有 5 个都经过测试,但前 4 个存在错误。因此分支“5”被批准,我们尝试为该功能分支创建拉取请求并将其合并到“Beta”....但是当我们这样做时,拉取请求包括所有 5 个功能分支......不仅仅是分支“5”的提交。
我们一定是做错了什么!我们可以做些什么来修复我们的流程/工作流程?
【问题讨论】:
-
您在哪些分支上进行测试?不同功能相互干扰的频率如何?
-
我问的原因是因为看起来您只在一个分支(开发)上进行测试,但您仍然能够独立测试/批准更改。所以我猜这些特征并不经常相交。