You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Bitbucket仓库迁移到GitHub时出现pre-receive hook declined错误如何解决

Bitbucket迁移GitHub报错解决方案

pre-receive hook declined报错本质是GitHub目标仓库的前置接收钩子拦截了推送请求,两种方案都失败属于触发了GitHub的仓库限制规则,可按以下步骤排查解决:

1. 排查仓库规则限制

分支保护规则是触发该报错最常见的原因

  • 进入GitHub目标仓库的「Settings」→「Branches」→「Branch protection rules」,临时关闭/删除main/master等受保护分支的规则,迁移完成后再重新配置即可。常见拦截规则包括:禁止直接推送分支、要求PR合并、要求提交签名、要求状态检查通过。
  • 检查仓库大小是否超限:GitHub单仓库默认存储上限为100GB,单文件大小超过100MB会直接拦截推送。如果存在大文件历史,可先清理再推送:
    # 使用BFG清理仓库历史中大于100M的文件
    bfg --strip-blobs-bigger-than 100M repository-to-mirror.git
    # 执行git gc清理无效数据
    cd repository-to-mirror.git
    git reflog expire --expire=now --all && git gc --prune=now --aggressive
    

2. 校验推送权限

  • 确认操作账号对GitHub目标仓库有写入权限,若使用HTTPS协议推送,可检查本地存储的Git凭证是否正确、未过期,也可替换为SSH协议的仓库地址推送,避免凭证校验问题。

3. 调整推送方式

  • 若git push --mirror全量推送失败,可拆分推送步骤定位问题:
    # 先推送所有分支
    git push origin --all
    # 再推送所有标签
    git push origin --tags
    
  • 若仓库提交历史过长,可尝试分批推送提交,避免单次推送数据量过大触发平台限流。

4. 内置导入工具失败处理

  • 若Bitbucket仓库为私有,导入时需正确填写Bitbucket账号的访问令牌/账号密码,保证GitHub有权限拉取完整仓库内容。
  • 可将本地已完成镜像克隆的仓库打包为压缩包,在GitHub导入页选择「Upload your local project」上传导入,比直接填写URL的导入成功率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:36:00