【发布时间】:2015-03-29 22:19:54
【问题描述】:
从每个 sprint 开始,我一直在监视两个分支 - Release 和 Master。
Master 分支是开发人员创建新分支(特定于任务)、实施更改并创建合并到 Master 的拉取请求的地方。
Release 分支是特定于 sprint 的,它始终可以提交给生产。我们只将提交给Master 并由QA 验证的分支合并到Release 分支中。
这种方法最适合我们,因为我们会定期提交 Release,并实施和验证特定功能,因此我们确切知道下一个版本会发生什么。
在我遇到以下问题之前一切顺利;
- DeveloperA 已从
Master创建了特定于任务的分支,例如taskA。 - 他已经多次提交给
taskA分支。 - 平均而言,其他开发人员B 从
Master创建了他的分支taskB,并对taskB提交了多项更改,并将taskB合并到Master。 - DeveloperA 会将
Master合并到taskA分支并继续他的任务,并将更多更改提交到taskA分支! - 最终他会将
taskA分支合并到Master。
现在我只想将taskA 分支合并到Release 分支,但是taskB 也被合并到taskA 分支中,因为DeveloperA 在步骤#4 中将Master 合并到他的分支中,我得到taskB分支自动更改为Release 分支!我不想要那个。
避免将Master 合并到Developer 分支的最佳方法是什么?在我的情况下,应该遵循的正确方法是什么?
【问题讨论】:
-
即使在您的工作流程中也不应该出现此问题。请详细说明此工作流程中使用的命令。解决方法之一是在 taskA 合并到 master 之后将 taskB 重新设置为 master。
-
你最后提到了一个Developer分支,你的意思是Release吗?
-
@Schwern 不,我的意思是它是开发分支。主要问题是 taskA 包含 taskB 更改,所以我不能只将 taskA 合并到 Release 分支。
-
@applefreak 您在问题的其他任何地方都没有提到开发人员或开发分支。你能澄清一下吗?你的意思是像taskA和taskB这样的任务/功能分支吗?
-
@Schwern 的开发分支我的意思是 taskA 或 taskB 分支。很抱歉造成混乱。