यह अजीब लग सकता है, लेकिन यह हमें कई तरीकों से निर्देशिकाओं से मेल खाने की अनुमति देता है: फ़ाइलों या निर्देशिका कहीं भी, निर्देशिका कहीं भी, या शीर्ष स्तर पर निर्देशिकाएं। यह बहुमुखी प्रतिभा बहुत उपयोगी है, और एक अव्यवस्थित .gitignore
को रोकने से रोक सकता है।
(FYI करें, यदि आप Git 1.8.2+ है, तो आप git check-ignore
का उपयोग इस डिबग मदद करने के लिए कर सकते हैं।)
आप foo
डालें, तो वह सभी फ़ाइलों और निर्देशिकाओं foo
नामित से मेल खाएगी।
आप foo/
डालें, तो वह केवल foo
नामित निर्देशिका से मेल खाएगी।
यदि पैटर्न स्लैश के साथ समाप्त होता है, तो इसे निम्न विवरण के उद्देश्य से हटा दिया जाता है, लेकिन यह केवल निर्देशिका के साथ एक मिलान प्राप्त करेगा। दूसरे शब्दों में, foo/इसके नीचे एक निर्देशिका foo और पथ से मेल खाता है, लेकिन नियमित फ़ाइल या प्रतीकात्मक लिंक foo से मेल नहीं खाएगा (यह गिट में सामान्य रूप से पथस्पेक कैसे काम करता है) के अनुरूप है।
आप *
जोड़ देते हैं तो foo/*
में के रूप में, यह एक फ़ाइल ग्लोब (.gitignore
के सापेक्ष) माना जाता है।पैटर्न में वाइल्डकार्ड एक/पथ नाम में मेल नहीं खाएगी:
अन्यथा, Git fnmatch के उपभोग के लिए उपयुक्त एक खोल ग्लोब (3) FNM_PATHNAME ध्वज के साथ के रूप में पैटर्न व्यवहार करता है। उदाहरण के लिए, "दस्तावेज़ीकरण/*। एचटीएमएल" मिलान "दस्तावेज़ीकरण/git.html" लेकिन "दस्तावेज़ीकरण/पीपीसी/पीपीसीएचटीएमएल" या "उपकरण/perf/दस्तावेज़ीकरण/perf.html" नहीं।
इस प्रकार foo/*
के लिए, Git सभी फ़ाइलों और निर्देशिकाओं शीर्ष-स्तरीय निर्देशिका foo
में ध्यान नहीं देगा। यह ध्यान नहीं देगा foo/dir
, foo/file.txt
, आदि (तकनीकी तौर पर, इस foo
ही नजरअंदाज नहीं होगा, लेकिन यह अपने बच्चों पर ध्यान नहीं देगा। हालांकि, बाद से Git निर्देशिका ट्रैक नहीं करता, यह एक ही प्रभाव पड़ता है।)
FYI करें, foo/**
होगा एक ही व्यवहार है।
मेरे सिफारिश:
आप शीर्ष स्तर पर एक निर्देशिका foo
अनदेखी करने के लिए चाहते हैं IMO यह इस नियम का उपयोग करने के लिए सबसे स्पष्ट है,:
में स्लैश से मेल खाता है पथनाम की शुरुआत उदाहरण के लिए, "/*.c" "cat-file.c" से मेल खाता है लेकिन "mozilla-sha1/sha1.c" नहीं।
तो तुम /foo/
लिख सकते हैं, और यह कहीं और शीर्ष-स्तर पर निर्देशिका foo
उपेक्षा, लेकिन होगा।
मैं वास्तव में आपके पहले के स्पष्टीकरण से प्यार करता हूं कि आपने संपादित किया: "इसका कारण: यह उपयोगकर्ताओं को तीन तरीकों से निर्देशिकाओं से मेल खाता है: फ़ाइलों या निर्देशिकाओं को कहीं भी, निर्देशिका कहीं भी, या शीर्ष स्तर पर निर्देशिकाएं।" इसके उद्देश्य का बहुत अच्छा सरल विवरण :) – stackoverflowuser
@ स्टैक ओवरफ्लूसर, मैं ब्रेवटी के लिए संपादित करने की कोशिश कर रहा था। मैंने इसे वापस अंदर रखा। धन्यवाद :) –