如何使用git fsck从“resolve-undo中的无效sha1指针”中恢复?

4

我在一个代码库中运行git gc,但是出现了致命错误:

Enumerating objects: 2382, done.
Counting objects: 100% (2382/2382), done.
Delta compression using up to 8 threads
Compressing objects: 100% (747/747), done.
fatal: unable to read <object-id>
fatal: failed to run repack

运行git fsck --full --no-dangling可以提供有关该对象问题的更多详细信息:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (2381/2381), done.
error: <object-id>: invalid sha1 pointer in resolve-undo
Verifying commits in commit graph: 100% (287/287), done.

我认为这是一个已经修复的错误引起的:

索引中的解析撤消信息没有受到GC的保护,这已在Git 2.38(2022年第三季度)中得到了纠正。

如果我的存储库已经处于这种状态,我该如何修复它?
1个回答

6

确保您没有任何已暂存的更改并重新创建索引

rm .git/index
git reset

这将从HEAD重新创建索引,而不包括resolve-undo扩展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接