You need to enable JavaScript to run this app. 无法将GitLab仓库镜像推送到GitHub报GH003错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

无法将GitLab仓库镜像推送到GitHub报GH003错误如何解决

GitLab镜像同步GitHub推送被拒绝(GH003报错)解决方案

报错根因

该报错由GitHub目标仓库的分支保护规则触发:git push --mirror命令默认携带强制推送逻辑,而大部分GitHub仓库会默认给master、develop这类核心分支开启强制推送拦截,即便是仓库管理员也会被默认拦截,因此出现pre-receive hook declined的报错。

解决方案

方案1:临时关闭分支保护规则(全量镜像同步推荐)

适合首次全量镜像同步的场景,同步完成后可还原规则保证分支安全:

  • 进入GitHub目标仓库的「设置」页面
  • 在左侧菜单栏找到「代码和自动化」分类下的「分支」选项
  • 找到「分支保护规则」板块,点击master、develop分支对应规则右侧的「编辑」按钮
  • 取消勾选「阻止强制推送」选项,同时取消勾选「不允许绕过上述设置」的开关,保存修改
  • 重新执行镜像推送命令:
git push --mirror https://github.***.com/***/***.git
  • 同步完成后回到分支保护规则页面,还原之前的配置即可。

方案2:添加同步账号到分支保护白名单(定期同步推荐)

如果需要长期定期做镜像同步,不需要每次修改规则:

  • 同样进入分支保护规则的编辑页面
  • 找到「允许强制推送」的配置项,选择「允许指定用户和组织」,把你用于同步的GitHub账号添加到白名单中
  • 同时可以添加「允许指定角色绕过必要的拉取请求」的权限,避免其他保护规则拦截同步操作
  • 配置完成后,该账号执行镜像推送命令不会再被拦截。

方案3:替换为非强制同步方式(不想改保护规则时可用)

如果不希望改动现有分支保护配置,可以放弃--mirror的全量强制同步逻辑,改为按需推送分支:

  • 先给本地仓库添加GitHub远端地址:
git remote add github https://github.***.com/***/***.git
  • 拉取GitHub远端最新代码避免冲突:
git fetch github
  • 逐个推送需要同步的分支和标签:
git push github master
git push github develop
git push github --tags

内容的提问来源于stack exchange,提问作者Ragini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 06:45:04