我们对 Git 相对较新,将它与具有多个分支的分支设置一起使用,即不仅仅是有一个分支然后应用功能分支。
我们的分支模型由以下部分组成(按此顺序):
- 硕士/生产
- 质量保证
- 系统测试
- 发展
到今天为止,我们首先将更改应用到开发和使用樱桃采摘到上面的下一个分支,即系统测试。然后我们再次对 QA 进行 Cherry Pick 并进行彻底的测试。更改不一定会交给 Master,因为某些更改可能会被搁置或推迟。
使用 Cherry Picking 对我们来说很麻烦,特别是如果更改是旧的并且包含许多提交。也存在破坏代码的风险,因为自动合并可能会失败。自动合并也很困难,因为源代码也包含二进制数据。
我们希望简化应用更改的步骤。在以前的项目中,使用功能分支是使这更容易的方法。我们在如何应用这种方法上苦苦挣扎,因为要考虑多个分支,并且某些更改可能不一定到达 Master。
我将尝试解释我们希望如何在我们的设置中使用 Git:
创建更改:首先从 Master 创建一个功能分支。任何更改都会推送到该功能分支。此功能分支只能从 Master 合并。
将更改应用于分支:功能分支合并到任何主要分支中,但首先是开发,然后是系统测试等。功能分支可以用于 QA,但不一定用于 Master。某些功能分支可能与以后的更改有关,并且可以搁置更长的时间。
哪种策略最适合使用 Git 的这种分支模型?我们如何才能以最好的方式使用 Git 以实现它应该如何使用。