Questa è una delle numerose domande riguardanti un repo Git che è corrotto, con precisione un oggetto sciolto che è andato storto:Git danneggiato pronti contro termine: come scegliere un oggetto git da un repository pulito
$ git gc
Counting objects: 3299, done.
error: inflate: data stream error (unknown compression method)
error: unable to unpack 831a5d31af4a0af2f5a367689bee27a44efc22c9 header
Delta compression using up to 6 threads.
Compressing objects: 100% (3283/3283), done.
error: inflate: data stream error (unknown compression method)
fatal: loose object 831a5d31af4a0af2f5a367689bee27a44efc22c9 (stored in .git/objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9) is corrupt
error: failed to run repack
seguito le risposte esistenti sull'argomento (How do I deal with corrupted git object files?, How to fix corrupted git repository? o What can I do with Git corruption due to a missing object?) Ho già rimosso l'oggetto 831a5d31
dal repository danneggiato.
Nel mio caso ho un clone del repository, che sembra contenere l'oggetto che mi manca, ma non c'è alcun file allo objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9
. Come posso fare per riparare il mio repository?
Questo funziona per oggetti BLOB; c'è un modo per importare/esportare oggetti albero? – fuzzyTew
Per rispondere alla mia stessa domanda, per fare questo per gli oggetti tree etc: 'git cat-file tree> temp' ' git hash-object -t albero -w temp' –
fuzzyTew
Grazie, hai salvato il mio repo! Si noti che se il repository pulito proviene da un sistema operativo diverso, SHA1 potrebbe non corrispondere se le terminazioni di riga non sono le stesse in tutti i sistemi operativi. La soluzione funzionava ancora, però. – mrm