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

Git推送GitHub报错:unexpected capabilities^{} 诊断与修复

问题诊断与修复:SHA-256仓库无法推送到GitHub

你的本地仓库使用的是SHA-256哈希算法(64位字符的哈希值是SHA-256的典型特征,SHA-1哈希为40位),而GitHub目前仅支持传统的SHA-1格式仓库,不兼容SHA-256仓库,这是推送失败的核心原因。

旧Git版本(2.34.1)报错fatal: protocol error: unexpected capabilities^{},是因为当时Git对SHA-256与SHA-1服务器的交互逻辑不完善,无法明确识别算法不兼容问题;升级到2.42.0后,Git能准确检测到双方哈希算法不匹配,所以给出了更直接的错误提示。

诊断步骤

  • 确认本地仓库的哈希算法:
    执行以下命令,若输出sha256,则确认是SHA-256仓库:
    git config --get core.objectFormat
    

修复方案

由于SHA-256和SHA-1仓库的底层存储格式不兼容,无法直接转换现有仓库,需重新创建SHA-1仓库并导入历史:

  1. 创建新的SHA-1本地仓库
    mkdir new-sha1-repo && cd new-sha1-repo
    git init
    # 显式指定使用SHA-1(Git默认即为SHA-1,此步骤可省略,仅作确认)
    git config core.objectFormat sha1
    
  2. 导入原SHA-256仓库的提交历史和内容
    • 将原仓库设为远程源:
      git remote add old-repo /path/to/your/original-sha256-repo
      
    • 拉取所有分支和提交历史:
      git pull old-repo --no-rebase --allow-unrelated-histories
      
    (如果有多个分支,需逐个拉取:git pull old-repo <分支名>)
  3. 关联GitHub仓库并推送
    git remote add origin git@github.com:<你的用户名>/<你的仓库名>.git
    # 推送所有分支
    git push -u origin --all
    # 推送所有标签(如果有)
    git push -u origin --tags
    
  4. 后续开发请使用这个新的SHA-1仓库,原SHA-256仓库可存档备用。

内容的提问来源于stack exchange,提问作者Michał Fita

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:22:43