Git 来自不同组织的不同回购的拉取请求

Git pull request from different repo on different org

好的,我的情况可能很独特

我有两个存储库,在不同的组织中(B 不是 A 的分支而是克隆),但都在 GitHub 上。一个我是 (B) 的管理员,另一个我是协作者,只有读取权限 (A)。

需要说明的是,我不是两者的所有者,所以我不能删除和分叉。

我需要从存储库 B 向存储库 A 提交拉取请求。这甚至可能吗?如果是,怎么办!

是的。只要他们共享足够的历史记录(提交),就没有问题。

  1. 转到 B 目录并将 A 添加为远程 (git remote add repoA $GIT_REPO_URL)。
  2. git fetch repoA
  3. 如果一个是另一个的叉子,则以相同的方式继续

根据评论中的说明,这里有一个适合您的完整解决方案:

第 1 步。转到 GitHub 并分叉 A 创建 A-fork。

第 2 步。克隆你的叉子:

git clone <URL for A-fork>

第 3 步。将 B 作为第二个远程服务器添加到同一个沙箱,并签出您必须作为合并请求提交的分支 - 我将其命名为 branch-for-PR:

git remote add B <URL for B>
git fetch B
git checkout branch-for-PR

步骤 3如果 branch-for-PR 已经存在于 A-fork,您将需要从 B:

合并该分支的状态
git merge B/branch-for-PR

第 4 步。将 branch-for-PR 推送到 A-fork,即 origin,因为这是您在第 2 步中克隆的内容:

git push origin branch-for-PR

第 5 步。转到 GitHub 上的 A-fork 并从 branch-for-PR 创建拉取请求。这将照常通知 A 的管理员。

无论 B 在何处托管,在私人 Git 存储库或在另一个 GitHub 用户下,这都可以工作。您所需要的只是能够从同一个沙箱连接到两者。