2012-08-31 14 views
5

Po raz piąty zdarzyło się to w ciągu ostatnich trzech tygodni i jestem naprawdę zastanawiałem się, dlaczego tak się dzieje. Jest to dokładna wiadomość mam kiedy zrobić „stan git”Błąd: plik obiektowy jest pusty .git/objects /../ .. jest pusty - krytyczny: luźny obiekt ... jest uszkodzony

error: object file .git/objects/48/088f00d90b0d27de65336bb9ed9a75b0cfed33 is empty 
fatal: loose object 48088f00d90b0d27de65336bb9ed9a75b0cfed33 (stored in .git/objects/48/088f00d90b0d27de65336bb9ed9a75b0cfed33) is corrupt 

Próbowałem zalecenia, takie jak usunięcie uszkodzonego obiektu, ale potem ten sam błąd pojawia się z innym luźnym obiektu. Za każdym razem, gdy to robię, kończy się około 30 luźnych obiektów, które muszę usunąć, a potem nadal daje mi błąd po tym, jak wszystkie uszkodzone obiekty zniknęły.

Po raz piąty tak się stało, coś musi być nie tak z git lub czymś z nim związanym. Próbowałem ponownie zainstalować git, ale wciąż kończyłem z uszkodzonymi obiektami. Używam maszyny wirtualnej z systemem Ubuntu, jeśli to by spowodowało coś takiego, nie wiem. Próbowałem także przełączać się na mennicę systemu Linux i również rozwiązałem ten problem.

W końcu zawsze zapisywałem zmiany w pliku tekstowym, skasowałem repozytorium, ściągałem świeże repozytorium z git hub, a następnie edytowałem zmiany. To działa, ale jest czasochłonne i dalekie od ideału. Niekoniecznie szukam sposobu, aby to naprawić, ale raczej to, co jest przyczyną tego i jak temu zapobiec.

+0

Jakich systemów plików używasz? Czy repo na wirtualnym napędzie VM lub dostęp za pośrednictwem NFS/CFS lub mount loopback lub bezpośrednie ext2/ext3/jfs/reiserfs/xfs/... mount lokalnego urządzenia na hoście lub dysku SAN? Czy dany system plików jest pełny, czy też wystarczająco bliski, aby mógł w pełni spełnić określone operacje? Jakieś błędy dysku/systemu plików w twoich wiadomościach/plikach syslog? – twalberg

+0

Używam wirtualnego dysku twardego sformatowanego do formatu ext4, w którym przechowywane jest repozytorium. Pojemność vhd wynosi 100 GB, a ja mam tylko 20 GB, więc nie jestem w pełni pełna. Żadnych błędów systemu plików ... –

+0

Zobacz tę doskonałą odpowiedź, http://stackoverflow.com/a/12371337/23118, mniej więcej ten sam problem. – hlovdal

Odpowiedz

0

Zwykle tak się nie dzieje, ponieważ git najpierw zapisuje zawartość pliku w pliku tymczasowym, a następnie zmienia nazwę pliku na ostateczną lokalizację. W praktyce widziałem puste pliki obiektów Git z powodu zepsutego systemu plików (VirtualBox vboxsf, używany do udostępniania folderów, wydaje się być winnym, gdy widziałem ludzi narzekających na puste pliki w ten sposób).

Ustawienie core.fsyncobjectfiles na true może pomóc.