繁体   English   中英

需要分支A的更改(尚未提交给主服务器),现在位于分支B上

[英]Need changes from branch A not committed to master, being now on branch B

我找不到我的Git和分支问题的解决方案,也无法正确搜索它。

即,所有关于分支的教程都显示了理想的情况:您在分支上创建和工作,提交并合并到主分支,创建新分支,...

实时地,这没有发生。 以我为例,一个处理合并(通过请求请求)与Master的人的假期为7天。 在那个时候,我必须完成10个任务。

因此,我接受任务1并创建一个分支task-1-分支并执行任务。 然后将分支提交到远程仓库。

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

我是从Master还是Task 1分支分支?

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

最后,如果我从Task 1分支创建子分支,是否会影响Pull Request,例如使负责合并的人混淆?

我是从Master还是Task 1分支分支?

这取决于您是否需要从task1分支进行更改才能在task2上工作。

如果您可以不需要task1的提交就可以执行task2,请从master分支。 然后,即使没有先合并task1,也可以合并task2。

如果task2基于task1中引入的更改,则从task1分支。 在这种情况下,没有task1的情况下合并task2是没有意义的。 您可以分别处理task1和task2,可以分别检查它们是否合并,但是没有task1不能合并task2。

在第二种情况下,可能会发生任务1合并之前需要对其进行一些更改的情况。 如果是这种情况,则可以使用对task1的最新更改来更新task2分支:

git checkout task2
git merge task1

然后,您可以解决冲突(如果有)并将其推送到task2的远程副本。

“男主人正在度假”的解决方法

您现在可以执行以下操作:

  • 首先,别说master
  • 每个任务都有一个单独的功能分支(就像您已经解释过的一样)。 所有这些应该从master那里分支出来。
  • 现在魔术:您可以创建第三个分支,我们称它为qa 也分支master 现在,完成后,将所有功能分支合并到qa分支中。 无论您想和master做什么,但还不能,与qa做。 也就是说,您可以针对qa运行测试套件,以查看错误的任务之间是否存在任何交互。 如果出现问题,或者您必须更改一个任务分支,只需删除qa并重新开始(通过再次将qamaster分支出来,然后以与以前相同的顺序添加所有任务分支)。
  • 当能够拉进人master回来了,您可以在您的个人任务分支的手,或者qa在其所有的荣耀。 从功能上来说,将是相同的,只是减少了他的工作量。 您将不得不问他,他想如何。

这可以扩展为完整的工作流程: http : //dymitruk.com/blog/2012/02/05/branch-per-feature

支行

最好避免这些。 本质上没有什么不好的,它只是增加了一些复杂/潜在的错误。

说:

如果你有一个branchB包含branchA ,那么他可以拉branchA ,然后branchB ,或者他可以拉只有branchB 结果将是相同的。

无论如何,在将branchBbranchA分支branchB之后,最好确保不要再碰到branchA ,否则可能会造成混乱(出于明显的原因,请问我不清楚我的意思)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM