Ho un oggetto git che è corrotto. La dimensione del file è 0 nella directory oggetti git.Come recuperare da un file danneggiato corrotto in git
Prima un fsck:
git fsck --full
fatal: loose object a35c1489005cca1ffeb3c2d3e4d63988408b6a24 (stored in .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24) is corrupted
Poi un ls:
ls -l .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24
----------+ 1 sampath ???????? 0 Sep 13 15:26 .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24
Questo file non esiste sul disco !?
# git cat-file -t a35c1489005cca1ffeb3c2d3e4d63988408b6a24
error: unable to find a35c1489005cca1ffeb3c2d3e4d63988408b6a24
fatal: git cat-file a35c1489005cca1ffeb3c2d3e4d63988408b6a24: bad file
Ho visto questo errore prima quando ho provato a fare un tiro.
Ho provato a rimuovere il file e a fare un pull, ma non ha funzionato. Si è lamentato che il file è mancante.
Quando ho rimosso il file e corsi fsck, mi ha mostrato un sacco di oggetti pendenti
# git fsck --full
broken link from commit 1e5980c224ff19b19ad99dbefed4c7c64c58aee6
to tree a35c1489005cca1ffeb3c2d3e4d63988408b6a24
dangling tree 0401d636a512b208dffd6ac6e153ab0a061f8d5d
dangling blob 58014c0266784a1e3cc1502de82837c5f36c8514
dangling tree 0507fa56260c693cea678eab0343240c5bba06ad
dangling tree 130770880c664a0b0cf5a21d037cbdba7480dc90
mi stanco di tornare un paio di commit e non ha aiutato.
Eventuali indicazioni su come recuperare da questo?
Avete una copia del repository da qualche parte? Se lo fai, prendi l'oggetto da lì. Dal momento che stavi tirando da qualche parte, si spera che tu abbia quell'oggetto in quel repository – Andy
Sarebbe http://stackoverflow.com/questions/801577/how-to-recover-git-objects-damaged-by-hard-disk-failure help ? (se si dispone di backup di tale repo, ovviamente) – VonC
ho provato questo. Ho clonato il repository e spacchettato gli oggetti. Ma non sono riuscito a trovare il file oggetto libero con dimensione 0. Significa che appartiene a uno dei miei commit locali che non sono stati ancora trasmessi al telecomando? –