2012-09-17 13 views
11

सेट करने के लिए सिगविन पर गिट को कैसे रोकूं मैं अपने विंडोज पीसी पर एक सिग्विन इंस्टॉलेशन से गिट का उपयोग कर रहा हूं। यद्यपि सिग्विन एनटीएफएस फ़ाइल सिस्टम पर यूनिक्स अनुमति बिट्स का समर्थन करता है, लेकिन मेरे ग्रहण जैसे मूल विंडोज प्रोग्राम उनके बारे में नहीं जानते हैं ताकि विंडोज प्रोग्राम द्वारा बनाई गई सभी फाइलों में निष्पादन योग्य बिट सेट (755) हो।मैं Core.filemode = true

मुझे केवल गिट रिपोजिटरी में निष्पादन योग्य बिट सेट के साथ फ़ाइल में जांच करने की आवश्यकता होती है। इसलिए, मैं डिफ़ॉल्ट रूप से core.filemode=false रखना चाहता हूं। मैं अपने वैश्विक विन्यास में यह मान सेट, लेकिन दुर्भाग्य से यह आम तौर पर कोई प्रभाव नहीं है: documented के रूप में, git clone अगर यह अनुमतियों का समर्थन करता है देखने के लिए फ़ाइल सिस्टम को जांचता है और भंडार प्रति तदनुसार core.filemode सेट है, और इसलिए मैं हर में एक core.filemode=true विन्यास है भंडार विन्यास, मेरे वांछित डिफ़ॉल्ट ओवरराइडिंग।

git clone को core.filemode स्वचालित रूप से सेट करने से रोकने का कोई तरीका है?

+0

मामले में यह प्रासंगिक है: मैं Git संस्करण 1.7.9 – oberlies

उत्तर

0

सामान्य तरीका एक गिट टेम्पलेट निर्देशिका का उपयोग करके अपने रेपो को init या क्लोन करना होगा।

git clone --template=<template directory> 

कि निर्देशिका में, आप एक कॉन्फ़िग फ़ाइल है, जो नए init'd या क्लोन रेपो के लिए एक स्थानीय Git रेपो कॉन्फिग के रूप में उपयोग किया जाएगा निर्दिष्ट कर सकते हैं।

OP oberliesreports हालांकि यह है कि यह, core.filemode और core.ignorecase लिए काम नहीं करेगा git config man page के लिए:

git-clone या git-init जांच और core.fileMode झूठी सेट अगर उचित जब भंडार बनाई गई है जाएगा।

+0

यह काम नहीं करता उपयोग कर रहा हूँ: दोनों 'Git clone' और' Git init' 'core.filemode' मान ओवरराइट कॉन्फ़िगर टेम्पलेट से। – oberlies

+0

@oberlies whoa, दो महीने laters;) ठीक है। आपके सिग्विन में गिट का संस्करण क्या है? साइगविन के बाहर, एक msysgit के साथ कोशिश करने का कोई मौका? क्योंकि दस्तावेज़ के अनुसार या http://monkeypatch.me/blog/mixing-professional-and-personal-git-configurations.html, 'config' को ओवरराइड नहीं किया जाना चाहिए। – VonC

+0

टेम्पलेट में 'कॉन्फ़िगरेशन' फ़ाइल के माध्यम से अन्य कॉन्फ़िगरेशन गुण सेट करना संभव है, लेकिन गिट टेम्पलेट से 'core.filemode' और' core.ignorecase' मानों को ओवरराइट करता है। मुझे लगता है कि [गिट बस बहुत स्मार्ट होने की कोशिश कर रहा है] (http://www.kernel.org/pub/software/scm/git/docs/git-config.html#_variables) ... – oberlies

1

आप इस तरह बैश सेट कर सकते हैं कि प्रत्येक बार जब आप cd जांचते हैं कि यह निर्देशिका एक संग्रह है और इसे ठीक से सेट करता है। अपने ~/.bash_profile में जोड़ने

PROMPT_COMMAND=pc 
pc() { 
    [ -d .git -a ! -g .git/config ] || return 
    git config core.filemode 0 
    chmod +s .git/config 
} 
+0

यह देखना अच्छा होता है कि आप अपना उत्तर सुधारते रहते हैं। और यह कि आप अब सवाल की तरह लग रहे हैं ... – oberlies

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