GitHub会跟踪通过其界面创建的分支,并假设拉取请求是针对原始存储库的。您需要告诉GitHub,您的副本不是分支,而只是具有相同历史记录的常规存储库。不幸的是,GitHub没有提供一个好的方法来取消选择分支链接。我通常用以下方法解决:
克隆仓库,执行 git pull
命令,确保您的本地副本完全更新。
在GitHub上删除该仓库。
使用完全相同的名称在GitHub上创建仓库。确保它是空仓库(不要创建 README
或 LICENSE
文件)。
将所有内容通过 git push
推回仓库。(您可能需要切换到每个分支并推送它,还可能需要使用 git push --tags
命令。)
易错点:此方法将丢失现有的GitHub问题和拉取请求注释。如果您经常使用这些,请不要使用此方法,您应该联系GitHub客户支持寻求帮助。
git add remote origin https://my.github.repo/...
和 git add remote upstream https://their.github.repo/...
。这样,当我想要从他们的系统更新时,我就可以使用 git pull upstream master
和 git push origin master
将他们的更改合并到我的分支中。 - robrichTripIt
的存储库,因此那是他们工作的源/父级。 实际上,如果你打开 自己的存储库,你会发现它根本没有被分叉(分叉计数为 0)。GitHub有一个虚拟代理,自动提交分离分支的工单。这对我来说比删除和重新创建存储库容易得多。他们只用了几个小时就完成了。
是的,这是一个糟糕的情况...
我所知道的唯一解决方案 (除了按照此处所述,删除 fork 并直接从本地克隆重新创建/推送) 是让上游所有者将原始存储库设置为 PRIVATE,然后将其返回到 PUBLIC。将其设为私有会永久性地断开与 fork 的链接。
但当然这需要上游所有者采取行动。Github 真的应该解决这个问题,但这已经是一个很长时间的问题了。