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

Git推送报错:缺失必要对象,附git fsck检测结果求解决

Git推送失败问题解决指南

问题详情

推送命令及错误输出

执行命令:git push origin test

原始错误输出:

Enumerating objects: 30, done.
Counting objects: 100% (23/23), done.
Delta compression using up to 10 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.01 KiB | 1.01 MiB/s, done.
Total 12 (delta 9), reused 2 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (9/9), completed with 8 local objects.
remote: fatal: bad object refs/__gh__/pull/55783/rebase
To git.corp.test.com:Test/t.git
 ! [remote rejected]         test -> test (missing necessary objects)
error: failed to push some refs to 'git.corp.test.com:Test/t.git'

中文翻译:

枚举对象:30个,已完成。
统计对象:100%(23/23),已完成。
使用最多10线程进行增量压缩
压缩对象:100%(12/12),已完成。
写入对象:100%(12/12),1.01 KiB | 1.01 MiB/s,已完成。
总计12个对象(增量9个),复用2个对象(增量0个),未复用打包对象0个
远程端:解析增量:100%(9/9),完成时使用8个本地对象。
远程端:致命错误:无效对象 refs/gh/pull/55783/rebase
推送至 git.corp.test.com:Test/t.git
! [远程拒绝] test -> test (缺少必要对象)
错误:部分引用推送至 'git.corp.test.com:Test/t.git' 失败

git fsck --full检测结果

执行命令:git fsck --full

原始输出:

@Brian61354270

Checking object directories: 100% (256/256), done.
Checking objects: 100% (2233797/2233797), done.
error: refs/remotes/origin/HEAD: invalid sha1 pointer 0000000000000000000000000000000000000000
Checking connectivity: 2233798, done.
dangling commit 0f22008e44c7ab5f73699a9b551241dcd00d73d4
dangling commit 642a800151da6bc94d343b57024a426063510051
dangling commit 2536007f58b1bf0ac6ac380dca963b83b2380c4d
dangling commit 0041802fada7edd6a7ce9de72486751742e441d9
dangling commit cd5680d2187338d495eb86bcccbde156c9d10ad6
dangling commit ca618036e28c9c56ef3abd70a9f259383f905311

中文翻译:

@Brian61354270

检查对象目录:100%(256/256),已完成。
检查对象:100%(2233797/2233797),已完成。
错误:refs/remotes/origin/HEAD: 无效的SHA-1指针 0000000000000000000000000000000000000000
检查连通性:2233798个对象,已完成。
悬空提交 0f22008e44c7ab5f73699a9b551241dcd00d73d4
悬空提交 642a800151da6bc94d343b57024a426063510051
悬空提交 2536007f58b1bf0ac6ac380dca963b83b2380c4d
悬空提交 0041802fada7edd6a7ce9de72486751742e441d9
悬空提交 cd5680d2187338d495eb86bcccbde156c9d10ad6
悬空提交 ca618036e28c9c56ef3abd70a9f259383f905311

解决步骤

1. 清理远程仓库无效引用

错误根源是远程仓库存在无效的引用refs/__gh__/pull/55783/rebase。如果拥有远程服务器权限,登录后进入仓库所在目录执行:

git update-ref -d refs/__gh__/pull/55783/rebase

若无权限,直接联系仓库管理员处理该无效引用。

2. 修复本地origin/HEAD指针

本地检测到refs/remotes/origin/HEAD指向无效的全零SHA-1,执行以下命令将其重置为远程仓库的默认分支:

git remote set-head origin -a

3. 重新尝试推送

完成上述修复后,再次执行推送命令:

git push origin test

4. 关于悬空提交的说明

检测到的悬空提交是未被任何分支、标签或其他引用关联的历史提交,不会影响本次推送操作。如果需要清理这些无用提交,可执行git prune,但建议先确认这些提交是否还有留存价值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:44:54