git error: “index file is too small”

2020-04-02 07:45发布

I had to re-install the OS (Windows 7 x64), everything related to the project was on another partition so my projects remained. Among the applications that I needed to install was also git but after I tried to see what is the status of the project (git status) the following exceptions occurred:

error: index file .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx is too small

error: index file .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx is too small

error: index file .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx is too small

error: index file .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx is too small

warning: packfile .git/objects/pack/pack-dc512716779f21b39f70fea9afcb5baa36ea872 d.pack cannot be accessed

error: index file .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e 4.idx is too small

fatal: unable to read tree 30cda07e931a7c9f3b1e3383c18efa10b2523c67

This is a first one for me. I was wondering whether somebody else encountered something similar and which was the solution for it.

Thank you!

标签: git
3条回答
家丑人穷心不美
2楼-- · 2020-04-02 08:13

Have you tried like

In the local repository’s config, and set repack.usedeltabaseoffset to false and then repacked the repository:

git config repack.usedeltabaseoffset false
git repack -a -d
查看更多
爷、活的狠高调
3楼-- · 2020-04-02 08:20

It sounds like the index for your pack file is corrupt. If you're sure that you haven't run out of disk space you can delete the index file and recreate it with:

git index-pack -v .git/objects/pack/pack-d3325f684a4eca22c0c168d7c63119da147865e4.pack

Note that it's extremely rare to have to do something like this so you should treat the errors as a sign of possible file system corruption. You may want to wipe everything and restore from backup.

查看更多
冷血范
4楼-- · 2020-04-02 08:29

Using git fsck you might be able to recover your repository.

But, more likely than not, you should look around for other options, like restoring from backup, or cloning from some git remote. As part of normal git development, you should have been pushing your changes to some remote server, like your another git server or Github. If you didn't, you may have really bad day.

查看更多
登录 后发表回答