2011-08-13 16 views
54

मैं साइगविन के माध्यम से विंडोज पर गिट का उपयोग करता हूं और जल्द ही filemode=false का उपयोग करने का निर्णय लेता हूं (अन्यथा मुझे शुरुआती गिट क्लोन के बाद बहुत सारे बदलाव मिलते हैं)। मुझे निश्चित रूप से अनुमति को ट्रैक करने में कोई दिलचस्पी नहीं है, मुझे लगता है कि कुछ फ़ाइलों को निष्पादन योग्य होने की आवश्यकता है। समय-समय पर, मुझे लगता है कि कुछ फ़ाइलों पर x ध्वज खो जाता है और मुझे लगता है कि यह गिट की वजह से है।सिगविन पर फ़ाइलों को गैर-निष्पादन योग्य बनाने से गिट को कैसे रोकें?

मुझे आवश्यक होने पर chmod a+x ... निष्पादित करने की अनुमति देने वाले समाधान से प्रसन्नता होगी।

उत्तर

95

मुझे विश्वास है कि आप git update-index --chmod=+x <file> चाहते हैं, इसके बाद प्रतिबद्धता हो।

+0

मैं इसे, में मदद करता है के बाद से मैं 'उपयोग कर रहा हूँ filemode = FALSE' है, इसलिए मुझे लगता है मैं के बाद कुछ करने के लिए नहीं लगता है गिट से फाइलें प्राप्त करना (उन्हें गिट में डालने के विपरीत)। कुछ भी जो गिट बदलता है या फ़ाइल बनाता है लागू होता है। इसके अलावा, यह स्वचालित रूप से चलाना चाहिए। – maaartinus

+2

[दस्तावेज़] (http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html#_configuration) विशेष रूप से सिस्टम के लिए इस आदेश की अनुशंसा करते हैं जहां filemode = false। अगर मैं इसे सही ढंग से समझता हूं, तो यह सेटिंग केवल अनुमति परिवर्तनों के _automatic_ पहचान पर लागू होती है। गिट अभी भी एक फाइलमोड स्टोर करता है, जो कि पहला गिट है जब आप 'गिट एलएस-पेड़ हेड' करते हैं। यदि यह 755 के बजाय 644 के रूप में दिखाई देता है, तो यह फ़ाइल निष्पादन योग्य बिट सेट नहीं करेगा जब वह फ़ाइल लिखती है। –

+0

मुझे लगता है कि मैं 'filemode = false' गलत समझ रहा था। किसी भी तरह मैंने सोचा, यह बिट्स को स्टोर करने में अक्षम होगा, लेकिन "इंडेक्स और कामकाजी प्रति के बीच निष्पादन योग्य बिट अंतर को अनदेखा कर दिया जाएगा"। – maaartinus

4

मुझे एक ही समस्या मिली है। गिट अपडेट-इंडेक्स --chomd = + x मेरे लिए काम नहीं करता है।

मैं chmod + x का उपयोग करता हूं, फिर प्रतिबद्ध करता हूं, यह सही काम करता है।

+0

या अपडेट-इंडेक्स का उपयोग करें, प्रतिबद्ध करें, फ़ाइल को दोबारा जांचें। –

5

आपको git update-index --chmod=+x <file> से शुरू करना चाहिए।

लेकिन यह आपके काम की नकल नहीं बदलता है, उस के लिए:

git checkout . 
संबंधित मुद्दे