所以我最近在Github PR的堆叠差异上阅读了这个blog post并且一直试图遵循它。我遇到了一个障碍,虽然我想要制作一些堆叠的PR,因为我无法访问上游仓库所以我不能推动任何分支。我在我的分叉回购中创建了一个初始分支,并打开了一个针对上游回购主的PR。然后我创建了另一个分支,前一个分支作为我的基础。我做了一些代码更改,我想以我的第一个分支作为基础打开第二个PR,但我只能针对我自己的分支回购而不是上游回购。有没有人遇到过类似的问题?在过去,我已经访问了上游仓库所以这不是一个问题,因为我可以将我的分支推到上游。对于您无法访问上游的情况,我只是不确定可能的解决方法。
答案 0 :(得分:2)
然后我创建了另一个分支,以前一个分支为基础。我做了一些代码更改,我想以我的第一个分支作为基础打开第二个PR,但我只能针对我自己的分支回购而不是上游回购
是的,这是预期的:您将您的工作与上游分支进行比较,而您的工作尚未合并到原始仓库中:它仅存在于您的分支中。
解决方法是:
git cherry-pick
(which is to say duplicate)来自您的第一个分支的提交,OP结束:
由于PR包含了第一个分支的变化,所以它并没有完全实现我的想法。我认为最终的问题是Github并没有让我在PR的已经开放的分叉回购中将上游分支作为PR的基础。
这当然是有道理的,因为该分支尚未合并到上游,因此在上游回购中不存在,但它确实似乎禁止了对上游回购的堆叠拉取请求的可能性谁不能推。
我同意:理想情况下,PR应该独立于其他PR使用:维护者选择并选择接受哪些PR,拒绝接受哪些PR。
我上面描述的是一种解决方法,但最终不是最佳做法。
OP补充道:
我决定做的是打开我的第一个公关对抗上游大师和我随后的公关对我分叉回购中的前一个分支。
然后,当一个PR登陆时,我可以轻松地将下一个PR的基本分支更改为上游主人,现在包括我之前PR的更改。
这确实是针对更新的origin / master更新现有PR的正确方法(现在包含另一个合并的PR)