如何直接将GitHub上的拉取请求合并到我的私人仓库?

3

这是我的情况:

  1. 我在自己的服务器上拥有一个私有仓库,称为privateRepo
  2. 我还将GitHub上的私有仓库作为公共仓库(类似于镜像),称为openRepo
  3. 人们可以fork openRepo,进行更改,并发送pull request
  4. 如果请求被接受,我想直接将其rebase到我的privateRepo中,而不是将其合并到openRepo中
  5. 与此同时,一些提交可以直接提交到privateRepo中,供直接在其中工作的人使用

因为如果我接受了在openRepo上的合并,我必须从openRepo更新privateRepo,这是一个循环,会增加冲突解决的难度。这种方式可行吗?

1个回答

0
你在说哪个圈?在openRepo上合并,然后同步回privateRepo的流程是非常清晰的。你只需要两个远程仓库 - privatepublic,将public中的内容合并到private中,如果你跳过在openRepo上的pull requests,那么它会越来越偏离privateRepo。一段时间后再次同步它们会是一个棘手的工作。此外,如果你不保持public repo的最新状态,人们可能会基于旧的、陈旧的提交进行工作。例如,我将创建我的分支来修复一个错误,而这个错误已经被另一个未合并的pull request修复了。此外,如果你不接受在public repo中的pull requests,那么你为什么需要一个public repo呢?
我理解你可能想要隐藏代码的某些部分,不让普通人看到。你可以在privateRepo中有数十个分支,不发布到openRepo!

我在谈论这个流程中间的图表。我没有弄清楚为什么以及他们如何直接将请求合并到私有存储库。 - fifth
你能突出显示一下你所谈论的动作吗? - madhead
在图表中,拉取请求被合并到了Apache的仓库中(我猜这是私有的),而不是GitHub仓库。我不知道他们为什么会这样做。通常情况下,拉取请求都是首先被合并回GitHub上游代码仓库的。我也有类似的工作流程。 - fifth
似乎这不是公共仓库,而是Apache的主要仓库,“唯一的真相来源”。他们只使用GitHub进行社区关系,但Apache私有仓库是主要的。我猜他们有钩子来自动同步仓库。因此,当他们合并到“private”时,更改会在一秒钟内自动同步到他们的GitHub上。 - madhead
我也猜测过。我的情况类似。私有仓库是主要的仓库,因此拉取请求首先被合并到私有仓库。但我不知道如何将钩子接入GitHub以将拉取请求合并/变基到私有仓库中。GitHub允许这样吗?这就是我提出这个问题的原因。 - fifth
Git允许从任何来源获取更改,例如git fetch https://github.com/user/repo.git,而无需将user/repo.git添加为远程。 - madhead

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