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