Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 分叉时如何管理拉取请求?_Git_Github - Fatal编程技术网

Git 分叉时如何管理拉取请求?

Git 分叉时如何管理拉取请求?,git,github,Git,Github,想想我的叉子吧。它从美国上游分叉: 美国-叉子->我的主人 我在本地分支fixA和fixB中进行了一些修复,并向我们提出了这些分支的拉取请求。拉取请求仍在等待合并到我们中。我已经将它们合并到我的:master中,因为我需要一个包含所有更改的集中位置 现在,他的另一位同事想帮助解决另一个问题。他把我的主人叉给他的主人;创建一个fix19分支,并将其请求到MY:fix19 美国-福克->我的:主人-福克->他的:主人 然而,当我尝试将我的请求:fix19拉到我们:master…时,我注意到fixA和

想想我的叉子吧。它从美国上游分叉:

美国-叉子->我的主人

我在本地分支fixA和fixB中进行了一些修复,并向我们提出了这些分支的拉取请求。拉取请求仍在等待合并到我们中。我已经将它们合并到我的:master中,因为我需要一个包含所有更改的集中位置

现在,他的另一位同事想帮助解决另一个问题。他把我的主人叉给他的主人;创建一个fix19分支,并将其请求到MY:fix19

美国-福克->我的:主人-福克->他的:主人

然而,当我尝试将我的请求:fix19拉到我们:master…时,我注意到fixA和fixB的提交也在那里

问题:解决这个问题的最佳策略是什么?我是否需要创建另一个分支MY:teamDev,将我的拉取请求和他的拉取请求合并在一起,并保持MY:master与US:master完全相同,这意味着在我们的维护人员合并请求之前,它将落后? 是不是应该从我们这里得到他的主人而不是我的主人?这是考虑过的,但这也意味着他将无法访问我的fixA和fixB更改-这似乎并不理想

然而,当我尝试将我的请求:fix19拉到我们:master…时,我注意到fixA和fixB的提交也在那里

当然,因为fixA和fixB并没有合并到我们身上:大师。所以当你把fix19和我们比较时:master,fixA和fixB会出现

处理此问题的一个好方法是在创建fix19的pull请求之前等待

在维护人员合并fixA和fixB后,这些差异将从fix19的拉动请求中消失

从技术上讲,何时创建fix19的pull请求并不重要。您可以现在创建,也可以稍后创建,最终结果是相同的。但是如果您稍后创建它,对维护人员来说会更好。如果您现在创建了它,那么维护人员可能会同时查看fixA和fix19,并对两次看到相同的东西感到沮丧。更重要的是,他们可能会要求你先在fixA中解决问题

从逻辑上讲,维护人员应该在fix19之前合并fixA和fixB。为了让事情对他们来说简单,等待fix19的pull请求

如果您有其他不包括fixA和fixB的更改,可以随时为它们创建拉取请求,因为合并它们的顺序并不重要

更新

等待挂起的拉请求并不有趣,因为您必须跟踪未合并的分支。但谁的舒适更重要,是你的,还是项目维护者的

跟踪挂起分支的一种方法是在存储库中临时重命名它们。您可以在创建拉取请求之前重新命名它们


如果上游项目处于非活动状态,您可以继续使用fork作为团队的主要来源。这没什么错。

如果美国维护人员没有那么积极或忙于其他工作,直到他/她最终合并您的pull req.janos之前,您始终可以将源代码指向MY git repo。我看到的等待策略的唯一问题是,您可能会失去对仍然需要拉取请求的内容的控制,或者更糟糕的是,如果他们拒绝fixA或fixB?会发生什么情况?。您是否更愿意在创建拉请求策略之前等待,而不是使用另一个分支MY:devBranch并在那里而不是在MY:master中合并修复?