在执行git push时出错,因为提交刚完成,电源就断电了
在我最近一次提交之后,电源就断了
现在我的分支领先了15个提交,但如果我尝试推送,就会收到一个关于空对象的错误信息。
On branch social-extend
Your branch is ahead of 'origin/social-extend' by 15 commits.
(use "git push" to publish your local commits)
➜ movie-club git:(social-extend) git push origin social-extend:social-extend
Enumerating objects: 163, done.
error: object file .git/objects/b8/faab9ddc086e929e1cd4f3f7884d480bca1bf6 is empty
error: object file .git/objects/cd/252c822087502d94f67e019c0790c4acec8503 is empty
Counting objects: 100% (163/163), done.
Delta compression using up to 12 threads
Compressing objects: 100% (122/122), done.
error: object file .git/objects/b8/faab9ddc086e929e1cd4f3f7884d480bca1bf6 is empty
fatal: unable to read b8faab9ddc086e929e1cd4f3f7884d480bca1bf6
remote: fatal: early EOF
error: remote unpack failed: index-pack failed
To github.com:SuperMo0/MoviesClub.git
! [remote rejected] social-extend -> social-extend (failed)
error: failed to push some refs to 'github.com:SuperMo0/MoviesClub.git'
解决方案
- 将你的分支回滚到之前的某个提交。
现有对象不会受到影响,只有新创建的对象会损坏。尝试 git reset HEAD^,或重置到一个特定的有效提交ID。
如果该命令不起作用,git update-ref refs/heads/social-extend HEAD^ 应该能解决。
- 在
.git/objects/中查找所有0 字节的文件并将它们删除。
创建文件时,元数据会立即被保存,但数据可能尚未写入,因此表示该提交的文件最终为空。运行 find .git/objects/??/ -type f -size 0 -ls 来查找匹配项,然后手动删除它们。
- 运行
git fsck来检查对象数据库是否还有其他问题。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。