Git error: "fatal: loose object"

Git error: "fatal: loose object"
« kdy: 16. 04. 2012, 20:56:21 »
Dobrý den,
když jsem dneska commitoval změny v mojem projektu, zničeho nic mi spadl systém. Od té doby, když se pokusím udělat nový commit, napíše mi git chybu:

Kód: [Vybrat]
fatal: loose object e35d2fc5a8d3f4cacacc3c4dd2017c31969a286
ects/e3/5d2fc5a8d3f4cacacc3c4dd2017c31969a2869) is corrupt

Jinak všechno jde, vytvářet a měnit branche, příkaz "git log", "git add" apod. Ale commitovat nemůžu.

Zkoušel jsem "git reset --hard" na starší verzi projektu, kde to bylo ještě všechno OK. Soubory projektu se mi obnovily, ale commitovat přesto nešlo. Zkoušel jsem i hledat na googlu, ale nic, co by mi dávalo smysl, jsem nenašel.

Napadá vás něco, jak tento repozitář opět zprovoznit? (mohl bych založit nový, ale přišel bych o celou historii změn)

Děkuji


Lol Phirae

Re:Git error: "fatal: loose object"
« Odpověď #1 kdy: 16. 04. 2012, 21:04:19 »
Už jsi zkoušel
Kód: [Vybrat]
git fsck? Výsledek?

Re:Git error: "fatal: loose object"
« Odpověď #2 kdy: 16. 04. 2012, 21:17:44 »
Nn, ten příkaz vidím poprvé.

Zkusil jsem a výsledek je opět stejná chybová hláška.
Kód: [Vybrat]
fatal: loose object e35d2fc5a8d3f4cacacc3c4dd2017c31969a286
ects/e3/5d2fc5a8d3f4cacacc3c4dd2017c31969a2869) is corrupt

Lol Phirae

Re:Git error: "fatal: loose object"
« Odpověď #3 kdy: 16. 04. 2012, 21:22:41 »
Hmmm, a práva k tomu jsou jaká? Máš k tomu souboru práva na čtení? Pokud ne, tak to vyflusne přesně tohle.

Re:Git error: "fatal: loose object"
« Odpověď #4 kdy: 16. 04. 2012, 21:36:15 »
Jj, mám. Myslím si, že ve chvíli, kdy se mi restartoval PC, zrovna Git zapisoval do tohohle souboru, ale nestihl tam zapsat všechno. Takže je to poškozený soubor a nevím, pomocí čeho ho obnovit.


Lol Phirae

Re:Git error: "fatal: loose object"
« Odpověď #5 kdy: 16. 04. 2012, 21:37:30 »
No, normálně ze zálohy, ne?  ;D :D Nikde jinde to naklonované nemáš? To je docela problém.

Re:Git error: "fatal: loose object"
« Odpověď #6 kdy: 16. 04. 2012, 21:39:47 »
Mám asi 2 týdny starou zálohu, tam ale tenhle soubor není.

Lol Phirae

Re:Git error: "fatal: loose object"
« Odpověď #7 kdy: 16. 04. 2012, 21:56:42 »
No, možná by bylo lepší řešit problém s tím obnovením starší verze, protože tenhle soubor je už asi definitivně v čudu. Zkus se rozepsat o tom problému po git reset

Re:Git error: "fatal: loose object"
« Odpověď #8 kdy: 16. 04. 2012, 22:01:29 »
Napadlo mě, že když celý projekt obnovím do cca den staré verze, že už ten poškozený soubor nebude potřeba a já těch pár změn udělám v projektu znovu. Ale i přesto, že jsem udělal hard reset, tak nové commity vytvářet nešly. Psalo to zase tu stejnou chybu...

Podle mě je možné ten soubor zrekonstruovat, všechny soubory projektu jsou vpořádku. Jen ten jeden objekt v .git je poškozený - ten se ale tvoří ze souborů samotného projektu, ne?

Re:Git error: "fatal: loose object"
« Odpověď #9 kdy: 17. 04. 2012, 08:01:20 »
Jej, vždyť je to jasné, jak zrekonstruovat ty poškozené soubory v .git :-) Asi je fakt pravda, že ráno je moudřejší večera (i když člověk spí jen 6 hodin :-) )

Vytvořil jsem si ve vedlejší složce nový repozitář a nakopíroval tam aktuální soubory mojeho projektu. Pak stačilo jen
Kód: [Vybrat]
git init
git commit -a

a v nově vytvořené složce .git se vytvořily tyto soubory znovu, a tentokrát správně :-) Takže stačilo soubory, které starý repozitář hlásil jako poškozené, zkopírovat z nového repozitáře a bylo :-)

Tobě Lol Phirae díky za snahu, nepřímo jsi mě nakopnul ke správnému řešení ;-)

Lol Phirae

Re:Git error: "fatal: loose object"
« Odpověď #10 kdy: 17. 04. 2012, 08:29:53 »
No, hlavně že to funguje. Ten soubor teda sám o sobě poškozený nebyl? Hmmm, možná zkusit nějaký git mailing list.

Re:Git error: "fatal: loose object"
« Odpověď #11 kdy: 17. 04. 2012, 22:29:34 »
Soubor .git/objects/e3/5d2fc5a8d3f4cacacc3c4dd2017c31969a2869 poškozený byl (plus pár dalších ve složce .git). Ale soubory samotného projektu (zdrojové soubory, obrázky atd.) byly v pořádku.