2011-12-22 30 views
16

git update-index --assume-unchanged <filename>fatal: Unable to mark file <filename> लौटाता है।गिट अपडेट-इंडेक्स - वॉल्यूम-अपरिवर्तित रिटर्न त्रुटि

इसे ठीक करने के लिए मुझे क्या करने की ज़रूरत है? इसके बारे में शिकायत क्या है और क्यों?

+2

क्या आप समझ गए थे? मुझे बताएं ताकि मैं आपके साथ वास्तव में क्या हुआ उसके साथ उत्तर अपडेट कर सकूं। –

उत्तर

12

क्या यह भंडार में जोड़ा गया है, .git/info/exclude में नहीं और .gitignore पर नहीं?

यदि उत्तर उनमें से किसी के लिए हाँ है, तो फ़ाइल भंडार में नहीं है और यह त्रुटि का कारण है।

git ls-files -o आज़माएं और देखें कि फ़ाइल वहां है या नहीं। यह नहीं होना चाहिए।

+0

यदि आपकी फ़ाइलें व्यवस्थित हैं, तो आपको अभी भी वही त्रुटि मिल जाएगी, इसलिए आपको पहले 'गीट रीसेट HEAD ' करने की आवश्यकता हो सकती है। – DavidJ

3

आप git update-index --assume-unchanged चला रहे हैं क्योंकि आपके पास रिपॉजिटरी में चेक की गई फ़ाइलें हैं लेकिन आप स्थानीय संपादन को अनदेखा करना चाहते हैं।

पेड्रो बताते हैं, फ़ाइल जो आपको त्रुटि दे रही है उसे भंडार में चेक नहीं किया गया है। (यह git ls-files -o जो यह ट्रैक न किए गए है का मतलब है में दिखाई देता है।)

इस बारे में आ सकता है क्योंकि आप इतनी तरह रिकर्सिवली एक पूरी सूची की अनदेखी करने की कोशिश कर रहे:

find ./folder/ -type f | xargs git update-index --assume-unchanged 

लेकिन न केवल कि फ़ोल्डर में फ़ाइलें संशोधित कर रहे हैं , नई फाइलें बनाई गई हैं। (। उदाहरण, एक निर्माण स्क्रिप्ट के द्वारा)

आप कुछ है कि आप सभी संशोधित फ़ाइलों को अनदेखा करना चाहते हैं, तो आप इस आदेश के साथ ऐसा कर सकते हैं:

git ls-files -m | xargs git update-index --assume-unchanged 

लेकिन देखना। ध्यान रखें कि --assume-unchanged के साथ गड़बड़ करना दर्द हो सकता है।

फिर से काम करने वाली चीजों पर विचार करें ताकि उन फ़ाइलों को रेपो में रहने की आवश्यकता न हो। फिर आप उन्हें अपने .gitignore में जोड़ सकते हैं और उन्हें git rm --cached के साथ भंडार से हटा सकते हैं।

यदि आप दोनों रिपो और उपयोगकर्ता निर्देशिका निर्देशिकाओं से फ़ाइलों को बाहर रख सकते हैं, तो यह आदर्श हो सकता है। उदाहरण के लिए, यदि फाइलें इमारत के हिस्से के रूप में बनाई गई हैं, तो आप प्रत्येक डेवलपर को स्थानीय रूप से बिल्ड प्रक्रिया चलाने की बजाए एक स्थिर लाइब्रेरी बना सकते हैं।