2013-04-03 13 views
7

Musiałem ponownie zainstalować system operacyjny (Windows 7 x64), wszystko związane z projektem znajdowało się na innej partycji, więc moje projekty pozostały. Wśród wniosków, że muszę zainstalować również git ale po starałem się zobaczyć co jest status projektu (git status) wystąpiły następujące wyjątki:Błąd git: "plik indeksu jest za mały"

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

Jest to pierwsza dla mnie. Zastanawiałem się, czy ktoś inny napotkał coś podobnego i które było na to rozwiązanie.

Dziękujemy!

+0

Jaka jest stara i nowa wersja gita? –

+0

dobre pytanie. Nowa wersja to 1.8.1.msysgit.1. Stary ... nie mam pojęcia. Czy istnieje sposób, aby to znaleźć? –

Odpowiedz

4

Brzmi jak indeks dla pliku paczka jest uszkodzona. Jeśli masz pewność, że nie zabraknie miejsca na dysku można usunąć plik indeksu i odtworzyć go z:

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

pamiętać, że niezwykle rzadko zdarza się zrobić coś takiego tak należy traktować błędy jako oznaka możliwego uszkodzenia systemu plików. Możesz wymazać wszystko i przywrócić z kopii zapasowej.

+0

Dziękuję. Nie działa. W końcu ponownie sklonowałem repozytorium. –

+0

@ user503413: Kiedy mówisz "nie działa", jaki był błąd? –

+0

Usunąłem kilka błędów, które nie zostały uzupełnione przez pakiet indeksu rozszerzeniem .pack. –

2

Używanie git fsck ciebiemoże być w stanie odzyskać twoje repozytorium.

Ale, bardziej prawdopodobne niż nie, powinieneś rozejrzeć się za innymi opcjami, takimi jak przywracanie z kopii zapasowej lub klonowanie z jakiegoś pilota git. Jako część normalnego rozwoju git, powinieneś był naciskać twoje zmiany do jakiegoś zdalnego serwera, jak twój inny serwer git lub Github. Jeśli nie, możesz mieć naprawdę zły dzień.

+0

git fsck nie działa. Zrewanżuję się repo - po prostu skakałem, że mogę się obejść i mogę nauczyć się czegoś nowego. Dziękuję Ci. Czy możesz wyjaśnić w dwóch słowach, co robi git fsck. –

+0

Dwa słowa to niewiele słów. :) Pozwól mi spróbować mimo to: sprawdzenie systemu plików. – patrickvacek

14

Czy próbowałeś jak

W config lokalne repozytorium, a ustawiona na false repack.usedeltabaseoffset a następnie przepakowane repozytorium:

git config repack.usedeltabaseoffset false 
git repack -a -d 
+1

Czy możesz wyjaśnić, co robią te dwa polecenia? –

+2

Wydaje się, że pożyczone stąd: http://joemaller.com/1283/git-error-index-file-is-too-small/. Oryginalny autor ma przyzwoite wytłumaczenie. – patrickvacek

+1

I sekunda @ patrickvacek: grzecznie jest przyznawać autorstwo oryginalnemu autorowi. –

Powiązane problemy