需要更改分支A未提交给master,现在在分支B上

时间:2016-08-09 15:19:18

标签: git version-control

我无法找到我的Git& amp;分支问题,我也无法正确搜索它。

即,所有关于分支的教程都显示了理想情况:您创建并处理分支,提交和合并到master,创建一个新分支,...

实时,这不会发生。在我的情况下,处理合并到Master(通过拉动请求)的人休假7天。在那段时间里,我必须完成10项任务。

所以,我接受任务1并创建一个分支任务-1分支并完成任务。然后将分支提交到远程仓库。

现在我想处理任务2.我需要创建任务2分支,但在哪里?

我是从Master或Task 1分支分支吗?

如何在任务2分支的任务1分支中进行更改而不合并它?

最后,如果我从Task 1分支创建subbranch,那么会影响Pull Request,例如混淆了一个处理合并到Master的人?

2 个答案:

答案 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,否则可能会出现混乱(原因很明显,请教如果我不清楚我的意思。)