这是我的情景:
我的项目遵循主题分支模式。
我创建了一个分支来修复一些问题,让我们调用这个分支问题_修复。我进行了更改,并提交了拉取请求。
我需要开始处理新功能,所以我创建了第二个名为my_feature的分支并提交了一系列更改。
在某些时候,我意识到my_feature依赖于尚未被接受和合并的problem_fixes(my_feature分支依赖于第一个分支的一些修复,没有它们我无法取得进展)。 / p>
如果没有恶意我的项目会导致更快地接受并合并我的第一个分支,这里最好的流程是什么?
我想知道我是否需要基于problem_fixes(而不是master)启动一个新的第三个分支并在我的提交中合并到my_feature?或者,如果我只是将problem_fixes合并到my_feature并继续工作也没关系 - 假设problem_fixes首先合并为master,当my_feature合并时理论上应该没问题(?)
答案 0 :(得分:14)
从第一个分支创建主题分支。一旦第一个被合并到主人,你就可以在那之上进行重新定义,并假设没有太多改变它应该不是问题。
如果第一个分支的提交没有被更改,你的新分支将整齐地叠加在那个上面,如果提交被更改(压缩,编辑或其他),你总是可以进行第二个分支的交互式rebase和第一个分支合并后,将其编辑为好看。
答案 1 :(得分:9)
是的,我认为你走在了正确的轨道上。我要做的是创建一个新的my_feature
分支,也许可以工作一点。当我意识到my_feature
取决于problem_fixes
时,将该分支合并进去。如果您知道自己需要它,可能会马上发生。然后,当my_feature
合并为主人时,您已经拥有了所需的更改。
请注意,只要您拥有强大的代码审核流程,那么如果您尝试在my_feature
之前将problem_fixes
合并到主数据库中,那么您会在那时注意到。
答案 2 :(得分:0)
在我从master
开始工作的情况下,我意识到我需要从另一个分支中进行一些更改而又无法合并,因为它仍然有一些破坏性的东西(但该死)我需要的是完整的)在那种情况下我会做什么
将其分支合并到我的
完成我的功能
等待其他开发人员完成其功能
它们合并为master
我将我的提交期望合并提交选入master
你们认为,这可能是摆脱特别痛苦的局面的一种方法,尽管它涉及到搞怪采摘,而大多数人认为这就像重新基地一样是一种痛苦。