将开发分支合并到我的派生分支,同时保留合并到主分支的选项

3
我fork了一个GitHub项目,对开发分支进行了一些更改,并提交了一个pull-request。项目所有者说他会在一两个星期内合并我的更改,但是自那以后已经过去了两个月。同时,我想让我的更改对世界开放,因为我在一篇研究论文中使用了它们。
我想将我的开发分支合并到我的fork主分支中,这样人们就可以通过我的fork使用这些更改;但是,我也希望项目所有者最终能够将我的更改合并到主分支中。
这是否可能?
1个回答

1
当然可以 - 只需前往您的主分支,与您的开发分支合并,就不会有任何问题。
从您的存储库或分支的角度来看,您发送拉取请求并不改变任何情况。您仍然可以在自己的一侧进行任何操作。
首先,您的存储库和他的存储库是分开的。您在自己的存储库中所做的任何操作都不会反映在他的存储库中,反之亦然。这意味着无论您(他)是否将更改合并到主分支(或在开发分支上进行新更改)*),都不会影响另一个人的存储库。此外,您发送的拉取请求将保持不变 *),直到他对其进行处理。
如果他合并了拉取请求,则您的存储库将不会注意到。它将保持不变,直到您将其与他的“父”存储库同步(->PULL)。
同样,他的存储库也不会注意到您执行合并的操作。实际上,在您执行此操作后,他可以与您的版本同步,就像在他发布新提交时您可以与他同步一样。在Git中,没有“父”和“子”存储库,所有存储库都是平等的,因此对于Git和推送/拉取等操作,在任何方向上同步都没有问题。
此外,如果您现在进行合并,他忽略了它,然后他做了一些更改,然后在一段时间后他决定合并您的补丁-您仍将能够与他的存储库同步以获取最新的更改(反之亦然)。这是因为Git记住了已经合并了什么,会注意到您已经将当前更改合并到了较早之前。
如果您必须等待他在他的一侧执行任何操作,那么“分布式源代码控制系统”的意义何在?
当然,如果您和对方进行合并的时间点大不相同,您(他)在与另一方同步时可能会遇到一些冲突,但是,好吧,任何合并都可能会有一些冲突。

*) 注意:Pull-Request会追踪您的存储库。如果您从devel发送了PR,则不应在需要之前更改devel。这是因为(-> 如何更新拉取请求),如果您向devel分支提交任何新内容,GitHub的PullRequest将假定这是一个更新,并且PR也将使用此新提交进行更新。因此,通过从devel发送PR,您基本上锁定了您的devel,直到PR解决为止。这就是为什么您应该创建一些其他分支,例如important-fixes-may-2017(是的,那是一个非常糟糕的名称),与您的devel相等,并从该分支发出PR。这样,该分支将被PR观察,您的devel将可以自由玩耍。

然而,所有这些并不改变您的主分支可以自由玩耍的事实。您可以检出master,与devel合并,这不会从他的角度改变任何东西。您发送的那个Pull-Request只有在您提交到原始PR的分支(即devel)时才会更新 - 如果您提交到devel

(暂时而言,如果你想在不更新PR的情况下进行更多修改,只需在与devel相同的位置创建一个名为devel2的分支并在该分支上工作)


你能帮我解决这个问题吗?http://stackoverflow.com/questions/43826650/error-could-not-apply-tried-it-in-proper-way-by-seeing-instructions-but-st?noredirect=1#comment74692370_43826650 - user7805277

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接