2009-10-21 9 views
10

के आधार पर फ़ाइलें मुझे लगता है कि एक विस्तारGit - मोड

उदाहरण के लिए की जरूरत नहीं है निष्पादन योग्य फ़ाइलों को अनदेखा करना चाहते उपेक्षा:

gcc -o foo foo.c 

मैं मैं अपने .gitignore फाइल करने के लिए 'foo' जोड़ सकते हैं पता है, लेकिन अगर मैं निष्पादन योग्य नाम बदलने का फैसला करता हूं तो मुझे अपनी .gitignore फ़ाइल को अपडेट करने की आवश्यकता होगी ...

+0

आप मोड (अनुमतियों) पर फ़ाइल बेस को अनदेखा नहीं कर सकते हैं, लेकिन जैसा कि जेफ्रोमी कहता है कि आप सभी फाइलों को अनदेखा कर सकते हैं लेकिन जिनके पास एक्सटेंशन है। –

उत्तर

8

यह वास्तव में आपके लिए गिटिनोरोर को मैन्युअल रूप से बनाए रखने के लिए सबसे अच्छा होगा। आप ऐसा कर सकता है:

* 
!*.* 

सब कुछ बाहर करने के लिए है, तो के साथ सब कुछ शामिल एक है, लेकिन मुझे लगता है आपके निर्देशिका एक्सटेंशन मौजूद नहीं है "।"। वर्तमान में ट्रैक की गई निर्देशिकाओं को अभी भी ट्रैक किया जाएगा, लेकिन यदि आपने कोई नया जोड़ा है, तो git-status इसे नहीं देख पाएगा, और आपको add -f का उपयोग करने के लिए इसे

संभवतः सभी को मानना ​​अच्छा नहीं है एक्सटेंशन-कम फ़ाइलों को ट्रैक नहीं किया जाना चाहिए, वैसे भी। आप कुछ स्वाभाविक रूप से समाप्त हो सकते हैं - उदाहरण के लिए, रीडमे और इंस्टाल बहुत आम हैं। गिटिग्नोर को संशोधित करने की तुलना में फ़ाइल को गलती से अनदेखा करना भी बदतर है। गिटिनोरोर को संशोधित करने में कुछ सेकंड लग सकते हैं, लेकिन जब आपको इसे करने की आवश्यकता होती है तो यह स्पष्ट होगा। यदि आप गलती से किसी फ़ाइल को अनदेखा करते हैं, तो आप इसे आसानी से जांच नहीं सकते और काम खो सकते हैं।

10

मैं आमतौर पर मेकफ़ाइल हैक्स का उपयोग करके इसे संभालता हूं। मेरी Makefile में मैं निष्पादन $ (नाम) के नाम पर है और फिर मैं यह कर:

#first rule 
all: gitignoreadd ... more depends 
    ... some commands ... 

gitignoreadd: 
    grep -v "$(name)" .gitignore > temp 
    echo $(name) >> temp 
    mv temp .gitignore 

gitignoreremove: 
    grep -v "$(name)" .gitignore > temp 
    mv temp .gitignore 

वह नियम तो बस कर कहीं उचित पर निर्भरता के लिए कर सकते हैं। फिर आपके पास आमतौर पर 'साफ करें' नियम होता है:

clean: gitignoreremove 
    rm *.o *.othergarbagefiles $(name) 

यह चाल चलाना चाहिए। यह एक हैक है लेकिन यह मेरे लिए काम करता है। केवल एक चीज यह है कि नाम को बदलने से पहले आपको सब कुछ साफ करने के लिए साफ करना होगा।