![](/img/trans.png)
[英]Added a large file to a git branch, committed changes, now the file is in every branch (including master)
[英]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
并重新开始(通过再次将qa
从master
分支出来,然后以与以前相同的顺序添加所有任务分支)。 master
回来了,您可以在您的个人任务分支的手,或者qa
在其所有的荣耀。 从功能上来说,将是相同的,只是减少了他的工作量。 您将不得不问他,他想如何。 这可以扩展为完整的工作流程: http : //dymitruk.com/blog/2012/02/05/branch-per-feature
最好避免这些。 本质上没有什么不好的,它只是增加了一些复杂/潜在的错误。
说:
如果你有一个branchB
包含branchA
,那么他可以拉branchA
,然后branchB
,或者他可以拉只有branchB
。 结果将是相同的。
无论如何,在将branchB
从branchA
分支branchB
之后,最好确保不要再碰到branchA
,否则可能会造成混乱(出于明显的原因,请问我不清楚我的意思)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.