Git镜像仓库时出现failed to push some refs错误的咨询
错误含义及解释
你遇到的! [remote rejected] refs/pull/1/head -> refs/pull/1/head (deny updating a hidden ref)这类错误,核心原因如下:
refs/pull/*是GitHub平台内部管理的隐藏引用,专门用来记录仓库里拉取请求(PR)的相关提交状态,普通用户没有权限直接推送或修改这类引用。- 你用
git clone --mirror命令会克隆原仓库的所有引用,包括这些PR相关的内部引用,后续执行git push --mirror时,Git会尝试把这些内部引用也推送到镜像仓库,自然会被GitHub拒绝。
不过你完全不用在意这些错误:从输出里的+ 74c80ea...9ff3e6b main -> main (forced update)能看出来,仓库的核心代码分支已经成功同步完成,文件内容是最新的,这些报错只是同步内部PR引用失败导致的,完全不影响镜像仓库的代码可用性。
如果下次同步不想看到这些错误,可以在推送前先删除本地的PR相关引用,执行以下命令:
git clone --mirror https://github.com/billtubbs/process-observers.git cd process-observers.git/ # 删除本地存储的PR相关引用 git for-each-ref --format='delete %(refname)' refs/pull | git update-ref --stdin # 推送镜像到目标仓库 git push --mirror https://github.com/billtubbs/ml-obs.git
内容的提问来源于stack exchange,提问作者Bill
相关产品推荐
相关产品推荐

