首先,我想
master分支保持绿色。分支战略:
master分支和一个integration分支与它一起运行。master中分离出来。integration中,以查看它是否破坏了其他任务分支的任何工作。如果是的话,就把它们修好。integration分支拉到master分支。
这意味着integration分支仅用于CI,它永远不会合并到master中。master中。下面是问题所在,假设我有以下情况:
master -*-----------------
|\
integration -+-\-------C---F---
| \ / /
ken/task#1 | A---B /
| /
bob/task#2 D---------E在F中,有两件事发生:
C和F更改了some-code.js的相同行F中断了C的一些测试。现在,Bob必须解决这个问题,他有两个选择:
选项1
integration合并为bob/task#2作为GH中的错误integration作为Iintegration绿但是,使用这种方法,我不能只选择在我的下一个版本中包含task#2。因为bob/task#2(H)已经包含了ken/task#1中的更改,所以将bob/task#2合并到master意味着将ken/task#1合并到master中。
选项2
bob/task#2G中的错误integration中并运行测试,以查看测试是否为绿色bob/task#2I中修复它integration并运行测试
..。
直到integration变成绿色。这种方法防止将更改从ken/test#1捆绑到bob/task#2中。
然而,Bob现在需要“猜测”他需要做什么来修复这个bug。然后一次又一次地合并到integration中,看看测试是否是绿色的,因为G和I现在没有在C中添加测试。
每次他将自己的工作合并到integration中时,他都需要解决同样的integration合并冲突,这是痛苦和多余的。
鲍勃有更好的选择3吗?
谢谢。
发布于 2017-05-09 18:22:19
您应该考虑遵循Git流:
https://www.atlassian.com/git/tutorials/comparing-workflows
下面是我对如何与Git流开发模型保持一致的想法:
总括而言,我建议的要点是:
Git流程非常适合于大中型项目.但实际上,我更喜欢用于较小项目的GitHub流,特别是如果我正在为web开发组件库的话。
在这里了解更多信息:http://scottchacon.com/2011/08/31/github-flow.html
https://stackoverflow.com/questions/43875217
复制相似问题