首页 > 解决方案 > 如何解决 Git 报告无效的 sha1 指针 00000000000000000000000000000000000000000?

问题描述

我的计算机突然关闭,现在我从事的项目的 Git 存储库有缺陷。我安装了 Git 2.20.1。我立即创建了项目文件夹的备份副本以使用原始文件夹。我有不想放弃的当地分支机构。

$ git status
error: object file .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3 is empty
fatal: loose object c78e67bcad2ea132e3df8f80bb42b4804ab4f2a3 (stored in .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3) is corrupt

短路输出:

$ git fsck --name-objects
error: object file .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84 is empty
error: unable to mmap .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84: No such file or directory
error: 04f338bf0dc0770b841b291af6cdd4c9130edb84: object corrupt or missing: .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84
error: object file .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850 is empty
error: unable to mmap .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850: No such file or directory
error: 2e07479ec010e5b459387d841a576e1ead97f850: object corrupt or missing: .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850
error: object file .git/objects/34/b03409d09382c44f50409e4388850ca9c82c77 is empty
error: unable to mmap .git/objects/34/b03409d09382c44f50409e4388850ca9c82c77: No such file or directory
...
error: object file .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3 is empty
error: unable to mmap .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3: No such file or directory
error: c78e67bcad2ea132e3df8f80bb42b4804ab4f2a3: object corrupt or missing: .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3
error: object file .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7 is empty
error: unable to mmap .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7: No such file or directory
error: e519b2fbf083f68694af97ccddf46bc28c6ee8f7: object corrupt or missing: .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7
error: object file .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e is empty
error: unable to mmap .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e: No such file or directory
error: ec289b8e8d17c47644d5bdbfbfc8b2957d2a430e: object corrupt or missing: .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e
error: object file .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4 is empty
error: unable to mmap .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4: No such file or directory
error: ed33778ddc07a26a37c6f200f35ffee12e365ea4: object corrupt or missing: .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4
error: object file .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70 is empty
error: unable to mmap .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70: No such file or directory
error: f65686bed85025fd7adbf209ba93846b18800d70: object corrupt or missing: .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70
error: object file .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38 is empty
error: unable to mmap .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38: No such file or directory
error: fdcdc518b01c670cd38c15903fd3e84554114d38: object corrupt or missing: .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38

Checking object directories: 100% (256/256), done.
Checking objects: 100% (40855/40855), done.
error: refs/remotes/origin/colors-housekeeping: invalid sha1 pointer 0000000000000000000000000000000000000000
error: bad ref for .git/logs/refs/remotes/origin/colors-housekeeping
error: object file .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e is empty
fatal: loose object ec289b8e8d17c47644d5bdbfbfc8b2957d2a430e (stored in .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e) is corrupt

colors-housekeeping是一个已经合并到的分支,master之后我已经编辑了其他文件,提交并合并了另一个分支。

我可以采取哪些步骤来修复损坏的对象?

有关的

标签: gitgit-fsck

解决方案


master当我克隆的一个 repo 将其默认分支从to重命名时,这发生在我身上main

错误是:

错误:refs/remotes/origin/HEAD:无效的sha1指针0000000000000000000000000000000000000000

让我们看看磁盘上的那个指针文件:

$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master

在编辑该文件并替换master为之后main,我再次能够毫无错误地获取/fsck/gc。


推荐阅读