我正在关注此文档:https: //help.github.com/articles/duplicating-a-repository/
git clone --mirror https://github.com/exampleuser/repository-to-mirror.git cd repository-to-mirror.git git push --mirror https://github.com/exampleuser/mirrored
输出显示存储库是作为镜像推送的,但由于某种原因我也遇到了这些错误:
! [remote rejected] refs/pull/1/head -> refs/pull/1/head (deny updating a hidden ref) ! [remote rejected] refs/pull/1/merge -> refs/pull/1/merge (deny updating a hidden ref)
这些错误是什么?我可以假设存储库已镜像吗?
正如本期中提到的那样,当您镜像一个向其发出拉取请求的GitHub仓库时会发生这种情况.
refs开头'
refs/pull
'是由GitHub创建的合成只读引用 - 你无法更新(因此"干净")它们,因为它们反映了实际上可能来自其他存储库的分支 - 那些向你提交了pull请求的分支.因此,当您推送所有真正的引用时,拉取请求不会更新
您需要在没有拉取请求的情况下镜像GitHub仓库.
只需用两个更具体的规格替换上面的catch-all refspec,只包括所有的头部和标签,但不包括拉力,所有远程拉动参考将不再进入你的裸镜:
fetch = +refs/heads/*:refs/heads/* fetch = +refs/tags/*:refs/tags/* fetch = +refs/change/*:refs/change/*