【发布时间】:2010-11-06 03:20:28
【问题描述】:
我在接近配额时执行了 Git 拉取操作,结果(我认为)得到了一个损坏的文件:
$ git pull
walk dffbfa18916a9db95ef8fafc6d7d769c29a445aa
fatal: object d4a0e7599494bfee2b5351113895b43c351496b3 is corrupted
$ git fsck --full
bad sha1 file: .git/objects/66/b55c76947b1d38983e0944f1e6388c86f07a1b.temp
fatal: object d4a0e7599494bfee2b5351113895b43c351496b3 is corrupted
$ git cat-file -t d4a0e7599494bfee2b5351113895b43c351496b3
error: unable to find d4a0e7599494bfee2b5351113895b43c351496b3
fatal: git cat-file d4a0e7599494bfee2b5351113895b43c351496b3: bad file
我该如何解决这种损坏?
.git/objects/66/b55c76947b1d38983e0944f1e6388c86f07a1b.temp 为零字节;删除它并没有解决我的问题(同样的错误)。
【问题讨论】:
-
内容必须与文件名相加。没有办法根据哈希恢复内容,所以除非 git 为这种确切情况内置了某种冗余(我不能说它没有)我会说你需要重新获取或克隆再次远程。
-
您说您已将其删除 - 之后您是否尝试再次拉取?一个零大小的临时对象有点中止传输的味道......
-
find . -name d4a0e7599494bfee2b5351113895b43c351496b3的输出什么都没有。删除 sha1 文件然后拉取只会导致生成空的 sha1 文件。 -
还有
$ git cat-file -t d4a0e7599494bfee2b5351113895b43c351496b3's输出为:error: unable to find d4a0e7599494bfee2b5351113895b43c351496b3 fatal: git cat-file d4a0e7599494bfee2b5351113895b43c351496b3: bad file -
这不是该对象的存储位置。应该是
.git/objects/d4/a0e7599...。您可以尝试备份并删除 那个 对象(并删除任何关联的临时文件)并再次拉取。
标签: git