2010-02-02 5 views
8

मेरा ऐप, मेरे फाइल सिस्टम में, ठीक काम करता है। सभी परीक्षण पासभ्रष्ट गिट ऑब्जेक्ट्स को मेरी फ़ाइलों से बनाए गए नए लोगों के साथ कैसे बदलें, जो ठीक हैं

मैं गिट का उपयोग करने के लिए ज्यादातर हीरोोक के साथ-साथ बैकअप के लिए एकमात्र डेवलपर हूं।

गिट ने भ्रष्ट वस्तुओं के कारण काम करना बंद कर दिया है।

मैं त्रुटियों कि इस तरह दिखना हो रही है: (। और कई अन्य त्रुटियों, सभी का हवाला देते हुए भ्रष्ट वस्तुओं)

steven-nobles-imac-200:drominay steven$ git push heroku master 
error: inflate: data stream error (invalid distance too far back) 
fatal: object 990ad2766afa2e2002eea265225ad160e73eacd2 is corrupted 
error: pack-objects died with strange error 

मैं कैसे Git भ्रष्ट वस्तुओं बाहर फेंक और बदलने के लिए मिलता है उन्हें मेरे ऐप की कामकाजी प्रति से निर्मित नई वस्तुओं के साथ?

Git init समस्या का समाधान नहीं किया।

धन्यवाद!

उत्तर

10

आपको git-fsck का उपयोग करने की आवश्यकता है। मैनुअल में details है, लेकिन यह बात यह है कि गिट-एफएसके यह सुनिश्चित करेगा कि भंडार आंतरिक रूप से सुसंगत है और गायब वस्तुओं को सूचीबद्ध करता है, फिर आप git hash-object -w <correct-file> का उपयोग रिपोजिटरी में दी गई फ़ाइल को रखने के लिए कर सकते हैं। यदि हैश-ऑब्जेक्ट को दी गई फ़ाइल वास्तव में भ्रष्ट है, तो आपका संग्रह अब पूर्ण हो गया है :)।

जोड़ने के लिए अपडेट किया गया: Git repair वही चीजें करता है, लेकिन स्वचालित रूप से :)।

+0

लेकिन अगर काम में वस्तु पैक में है, तो यह काम नहीं करता है, है ना? मैं पुनर्प्राप्त वस्तु का उपयोग करने के लिए गिट को कैसे बताऊंगा, न कि पैक फ़ाइल में से एक? –

+0

@FrederickNord, अब सबसे अच्छा विकल्प (और मैंने तदनुसार मेरा जवाब संपादित किया है) जोय हेस की गिट-रिपेयर का उपयोग करना है। –

संबंधित मुद्दे

 संबंधित मुद्दे