git: मैं फ़ाइल अनुमतियों के परिवर्तनों को अनदेखा करने के लिए git को कैसे कॉन्फ़िगर कर सकता हूं


21

मेरे पास एक लिनक्स सर्वर में कुछ गिट परियोजनाएं हैं।

मैं अपनी प्रोग्रामिंग करने के लिए Mac और linux का उपयोग करता हूं। समस्या यह है कि मैक फाइलसिस्टम की अनुमतियाँ वास्तव में लिनक्स में अच्छी तरह से काम नहीं करती हैं, इसलिए सभी फाइलें umask 0755 पर लगती हैं। इसलिए जब भी मैं अपने कोड को अपने मैक पर खींचता हूं, तो यह git statusदर्शाता है कि मेरी सभी फाइलें बदल गई हैं और जब मैं इसका उपयोग git diffकरता हूं यह दर्शाता है कि एकमात्र बदलाव उमस्क में है। मैं umask परिवर्तनों के लिए स्टोर और जांच नहीं करने के बारे में कैसे बता सकता हूं?

धन्यवाद!


1
मुझे पूरा यकीन है कि OS X Unix- शैली की अनुमति का समर्थन करता है ...
grawity

1
umask और अनुमतियां एक ही बात नहीं हैं। क्या आप वाकई यह जानते हैं कि आप यहाँ क्या कर रहे हैं?
15:22 बजे मार्नेन लाईबो-कोसर

जवाबों:


28

करने के लिए core.fileModeकॉन्फ़िगरेशन गुण सेट करें false। आप इसे इस आदेश के साथ आसानी से कर सकते हैं:

git config core.fileMode false

क्या यह प्रति-रिपोजिटरी सेटिंग है या विश्व स्तर पर यह काम करना संभव है?
acme

2
@acme: सभी git सेटिंग्स की तरह, आप इसे बिना किसी अतिरिक्त स्विच --global, या --system, या , के क्रमशः प्रति-रिपॉजिटरी, प्रति उपयोगकर्ता या सिस्टमवाइड सेट कर सकते हैं। git help configविवरण के लिए देखें।
पैच

धन्यवाद! लेकिन इसे विश्व स्तर पर स्थापित करना स्वचालित रूप से नई रिपॉजिटरी में इस सेटिंग को नहीं जोड़ता है, यह सिर्फ मेरे स्थानीय मशीन पर एक सेटिंग है?
एक्मे

@acme: हाँ, एक विकल्प के साथ सेट करना --globalस्थानीय रूप से आपके उपयोगकर्ता खाते के साथ किसी भी रिपॉजिटरी पर सभी कार्यों को प्रभावित करता है। यह किसी और को प्रभावित नहीं करता है। किसी विशेष रिपॉजिटरी के सभी उपयोगकर्ताओं के लिए इसे सेट करने के लिए आपको सर्वर पर प्रति-रिपॉजिटरी सेटिंग को टॉगल करना होगा जिसे हर कोई पुश करता है।
पैच

1

मेरे पास इसे टॉगल करने के लिए एक छोटी सी शेल स्क्रिप्ट है

cat ~ / bin / git-ign-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

इसके साथ मैं गिट को टॉगल कर सकता हूं, अन्य परिवर्तनों की जांच कर सकता हूं और फिर जल्दी से वापस रख सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.