Stack Overflow: how to fix git error object file is empty
This saved me from a lot of googling and trial/error, I was getting the following error:
error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt
Maybe caused by powering off my VM sandbox while syncing or some other weirdness, normally with a very low impact as you can always do a git clone, but as I had some changes done locally on my working branch that I didn't want to miss/re-do, this saved my day. The original answer with full comments can be found at the link above, the brief version is:
cp -a .git .git-old git fsck --full # Remove empty files by using "rm", continue until none is left and the "missing blob" starts showing git reflog # It will show "fatal: bad object HEAD" tail -n 2 .git/logs/refs/heads/master # Identify parent of last commit (the one HEAD is pointing to), easily recognizable as it will show up twice git show commit_parent git update-ref HEAD commit_parent git fsck --full # There are some blobs left from outdated index, nuke and carry on rm .git/index git reset # There should be only references to "dangling blobs", these are not errors, continue git status git add . git commit -m "Recovering from lost objects"And done.
3 comments:
You saved my day!!
Respect!
Great post!
Really thanks for your manual.
Post a Comment