我无法找到我的Git& amp;分支问题,我也无法正确搜索它。
即,所有关于分支的教程都显示了理想情况:您创建并处理分支,提交和合并到master,创建一个新分支,...
实时,这不会发生。在我的情况下,处理合并到Master(通过拉动请求)的人休假7天。在那段时间里,我必须完成10项任务。
所以,我接受任务1并创建一个分支任务-1分支并完成任务。然后将分支提交到远程仓库。
现在我想处理任务2.我需要创建任务2分支,但在哪里?
我是从Master或Task 1分支分支吗?
如何在任务2分支的任务1分支中进行更改而不合并它?
最后,如果我从Task 1分支创建subbranch,那么会影响Pull Request,例如混淆了一个处理合并到Master的人?
答案 0 :(得分:1)
我是从Master或Task 1分支分支吗?
这取决于您是否需要从task1分支进行更改才能使用task2。
如果您可以在不需要来自task1的提交的情况下处理task2,则从master分支。然后,即使task1没有首先合并,也可以合并task2。
如果task2基于task1中引入的更改,则从task1分支。在这种情况下,没有task1合并task2是没有意义的。您可以单独处理task1和task2,可以单独检查它们的合并,但如果没有task1,则无法合并task2。
在第二种情况下,可能会发生在可以合并之前需要对task1进行一些更改。如果是这种情况,则可以使用对task1的更新更新来更新task2分支:
git checkout task2
git merge task1
然后您可以解决冲突(如果有)并推送到task2的远程副本。
答案 1 :(得分:1)
你现在可以这样做:
master
独自一人。 master
分支出来。qa
。也分支master
。现在,您将所有功能分支在完成后合并到qa
分支中。无论你想用master
做什么,但还不能,你做qa
。也就是说,您可以针对qa
运行测试套件,以查看您的任务之间是否存在任何出错的交互。如果出现问题,或者您必须更改其中一个任务分支,只需删除qa
并重新开始(再次从qa
分支master
然后以与以前相同的顺序添加所有任务分支。)master
的人回来时,你既可以移交你的个人任务分支,也可以移动qa
的所有荣耀;在功能上,它将是相同的,只是为他做的工作少。你必须问他他想要的样子。这可以扩展到完整的工作流程:http://dymitruk.com/blog/2012/02/05/branch-per-feature
最好避免这些。没有什么本质上不好的,它只会增加一些并发症/错误的可能性。
那说:
如果您的branchB
包含branchA
,那么他可以提取branchA
,然后提取branchB
,也可以只提取branchB
。结果将是相同的。
在任何情况下,将branchB
分开branchA
之后,最好确保不要再次触摸branchA
,否则可能会出现混乱(原因很明显,请教如果我不清楚我的意思。)