Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: xxxObiWan 16. 04. 2012, 20:56:21

Název: Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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
Název: Re:Git error: "fatal: loose object"
Přispěvatel: Lol Phirae 16. 04. 2012, 21:04:19
Už jsi zkoušel
Kód: [Vybrat]
git fsck? Výsledek?
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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
Název: Re:Git error: "fatal: loose object"
Přispěvatel: Lol Phirae 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.
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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.
Název: Re:Git error: "fatal: loose object"
Přispěvatel: Lol Phirae 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.
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 16. 04. 2012, 21:39:47
Mám asi 2 týdny starou zálohu, tam ale tenhle soubor není.
Název: Re:Git error: "fatal: loose object"
Přispěvatel: Lol Phirae 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
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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?
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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í ;-)
Název: Re:Git error: "fatal: loose object"
Přispěvatel: Lol Phirae 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.
Název: Re:Git error: "fatal: loose object"
Přispěvatel: xxxObiWan 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.