2011-05-15 21 views
86

संभव डुप्लिकेट:
Make .gitignore ignore everything except a few files.gitignore फ़ाइल के विपरीत?

यह Git जब तक एक विशेष फ़ाइल में निर्दिष्ट, डिफ़ॉल्ट रूप से सभी फाइलों को अनदेखा जाने के लिए संभव है? !

+1

जैसा कि कहते हैं, "सबकुछ अनदेखा करें, अपवाद निर्दिष्ट करें" दृष्टिकोण संभवतः सबसे आसान है - यह भी देखें http://stackoverflow.com/q/987142/223092 और http://stackoverflow.com/q/1248570/223092 –

+0

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

उत्तर

116

आप शामिल कर सकते हैं श्वेत सूची फ़ाइलों को -lines: के साथ एक .gitignore:

* 
!included/ 

सभी को बाहर निकाल देगा, लेकिन 'शामिल /' निर्देशिका

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

उदाहरण:

* 
!*/ 
!SOURCES 

, सब कुछ पर ध्यान नहीं देगा उपनिर्देशिका में SOURCES को छोड़कर।

+1

और निश्चित रूप से, यह सब ['man gitignore'] (http://www.kernel.org/pub/software/scm/git/docs/gitignore.html) में प्रलेखित है। – Cascabel

+0

लिंक टूट गया। Http://linux.die.net/man/5/gitignore – jldupont

+0

का उपयोग करें जब यह एक निर्देशिका है ... यह केवल फाइलों के लिए मेरे लिए काम नहीं करता है। – semente

10

आप इसके लिए .gitignore का उपयोग कर सकते हैं।

* 
!file0.txt 
!file1.txt 

ऐसी स्थिति में जहां आप file0.txt और file1.txt में रूचि रखते हैं।

+4

हालांकि यह नेस्टेड पथों के लिए काम नहीं करेगा, जिसके लिए आपको उपयोग करना होगा [ '! * /' चाल] (http://stackoverflow.com/a/9227991/321973) –

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