Git: ट्रैक की गई फ़ाइलों को अनदेखा करें


182

मेरे पास एक रिपॉजिटरी में कुछ ट्रैक की गई फाइलें हैं जो कोड बनाते समय स्वचालित रूप से संशोधित हो जाती हैं। मैं उन्हें अनट्रैक नहीं करना चाहता, मैं बस उन्हें संशोधित रूप में प्रदर्शित नहीं करना चाहता और मैं नहीं चाहता कि जब मैं जोड़ूँ तो उनका मंचन हो।

क्या यह संभव है?



5
इन फ़ाइलों को स्वचालित रूप से कर रहे हैं उत्पन्न निर्माण से है, तो वे Git में ट्रैक नहीं किया जाना चाहिए।
कोडबेलिंग

यहाँ gitignore जो आपके लिए उपयोगी हो सकता है कि पर एक त्वरित ट्यूटोरियल है: learningpassion.wordpress.com/2016/06/17/...
जोकर

जवाबों:


283

ज़रूर।

git update-index --assume-unchanged [<file> ...]

पूर्ववत करें और फिर से ट्रैकिंग शुरू करें:

git update-index --no-assume-unchanged [<file> ...]

3
इस स्थिति में फ़ाइलों का क्या होता है जब मैं उन्हें संशोधनों में खींचता हूं?
हाइमनफील्ड

2
@haymansfield कमांड के लिए हेल्प पेज निम्नलिखित कहता हैGit will fail (gracefully) in case it needs to modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is changed upstream, you will need to handle the situation manually.
परम

3
--assume-unchangedक्लोनिंग पर लागू करने का कोई तरीका ? ताकि सभी उपयोगकर्ताओं के पास फाइलें हों, लेकिन उन्हें भिन्न में स्थानीय परिवर्तन न दिखें।
गौथियर

10
@ टायलर - नहीं, एक बार किसी फाइल को git द्वारा ट्रैक करने पर यह हमेशा ट्रैक किया जाएगा, भले ही वह फाइल एक .ignignore में दिखाई दे। मेरा उपयोग मामला कुछ इस तरह है "यहाँ एक फ़ाइल का आधार टेम्पलेट है जहाँ आप अपनी साख जमा करेंगे, अब कभी भी इसे कमिट न करें"।
जॉन वी।

5
@watbywbarif के पास git update-index --no-assume-unchanged $(git ls-files $(git rev-parse --show-toplevel))git उर्फ ​​के रूप में कमांड सेट है। जब भी मुझे शक होता है, यह इन शेननिगों में से कुछ है जो मैं अभी करता हूं।
फिलिप कार्फिन

6

एक अन्य दृष्टिकोण (सेठ रॉबर्टसन द्वारा अब हटाए गए उत्तर से, लेकिन मुझे यह उपयोगी लगा, इसलिए इसे फिर से जीवित करना) "ट्रैक की गई" टेम्प्लेट फ़ाइल को बनाए रखना है, फिर इसका स्थानीय अनट्रैक किया गया संस्करण है, उदा: "config.sample.i" या " config.ini.template " एक पूर्ण उदाहरण के लिए https://gist.github.com/canton7/1423106 देखें ।

अगर फ़ाइल को गिट के अंदर बदल दिया जाता है, तो कोई चिंता नहीं होगी, और आप स्थानीय अनट्रैक फ़ाइलों पर .ignignore (अंत में) का उपयोग कर सकते हैं।


5

Git विशेषताएँ और फ़िल्टर कमांड में% f का उपयोग कर एक और समाधान:

git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude

16
क्या आप इस बारे में अधिक जानकारी दे सकते हैं कि इसका क्या मतलब है और यह संयोग से क्या कर रहा है?
रोजगारपैक

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