Я попал в ту же ситуацию, вероятно, из-за неправильного завершения работы виртуальной машины, на которой я работал. В .git / объекты, которые имели нулевую длину, были примерно 10 объектов. Насколько я могу судить, реальные файлы исходного кода были в порядке, просто хранилище было подключено.
$ git status
fatal: object fbcf234634ee04f8406cfd250ce5ab8012f92b08 is corrupted
В соответствии с некоторыми предложениями, которые я видел в других местах (включая сообщение Линуса, упомянутое выше), я пытался временно переместить поврежденные объекты, на которые жалуется git, из .git / objects в другом месте. Когда переехали все из них, я получил:
$ git status
fatal: bad object HEAD
После примерно часа поиска в Google и поиска различных решений я сдался и запустил новую рабочую копию, используя 'git clone', чтобы вытащить ее из источника (что было около 2 часов позади моей рабочей копии). Затем я использовал rsync -rC
(-C исключает файлы SCM), чтобы скопировать измененные файлы из испорченной рабочей копии в мою новую рабочую копию.