我有一个可能是独特的情况:
我在GitHub上拥有两个不同组织下的代码仓库(B不是A的fork,而是克隆的),其中一个(B)我是管理员,另一个(A)我只有读取权限。
需要明确的是,我都不是这两个仓库的所有者,所以我不能删除并重新fork。
我需要从B仓库向A仓库提交一个pull request。这是否可行?如果可以,应该怎么做呢?
我有一个可能是独特的情况:
我在GitHub上拥有两个不同组织下的代码仓库(B不是A的fork,而是克隆的),其中一个(B)我是管理员,另一个(A)我只有读取权限。
需要明确的是,我都不是这两个仓库的所有者,所以我不能删除并重新fork。
我需要从B仓库向A仓库提交一个pull request。这是否可行?如果可以,应该怎么做呢?
根据评论中的澄清,这里提供了一个完整的解决方案,应该适合您:
步骤1. 前往GitHub并fork A,创建A-fork。
步骤2. 克隆您的fork:
git clone <URL for A-fork>
步骤 3. 将 B 添加为同一沙箱的第二个远程,并检出要作为 Pull Request 提交的分支 - 我将其称为 branch-for-PR
:
git remote add B <URL for B>
git fetch B
git checkout branch-for-PR
第三步b。如果 branch-for-PR
已经存在于 A-fork 上,你需要从 B 合并该分支的状态:
git merge B/branch-for-PR
步骤4. 将branch-for-PR
推送到A-fork,也就是在第2步克隆的origin
:
git push origin branch-for-PR
第5步。前往GitHub上的A-fork并从branch-for-PR
创建拉取请求。这将像往常一样通知A的管理员。
无论B托管在何处,私有Git仓库或者另一个GitHub用户下,此方法都适用。您只需要能够从同一个沙盒连接到两个仓库。
branch-for-PR
在 A 上之前存在吗? - joanis是的。只要它们共享足够的历史记录(提交),就没有问题。
git remote add repoA $GIT_REPO_URL
)。git fetch repoA