अद्यतन: @Joey's answer पर एक नज़र डालें: गिट अब पैटर्न में **
वाक्यविन्यास का समर्थन करता है। दोनों दृष्टिकोण ठीक काम करना चाहिए।
gitignore(5) man page कहता है: पथ के रूप में एक ही निर्देशिका में .gitignore फ़ाइल से पढ़ने
पैटर्न, या किसी पेरेंट निर्देशिका में, उच्च स्तर फाइलों में पैटर्न (उच्चस्तरीय अप करने के लिए के साथ कार्य पेड़ के) फ़ाइल वाले निर्देशिका में निचले स्तर की फ़ाइलों में उन लोगों द्वारा ओवरराइड किया जा रहा है।
इसका मतलब क्या है कि अपने रेपो के किसी भी निर्देशिका में .gitignore
फ़ाइल में पैटर्न कि निर्देशिका और सभी सबडायरेक्टरियों को प्रभावित करेगा है।
पैटर्न आपके द्वारा दी गई
/public/static/**/*.js
बिल्कुल सही नहीं है, सबसे पहले, क्योंकि (जैसा कि आप सही तरीके से ध्यान दिया) **
वाक्य रचना Git द्वारा नहीं किया जाता। इसके अलावा, अग्रणी /
पथनाम की शुरुआत के लिए पैटर्न को एंकर करता है। निकाला जा रहा है प्रमुख /
या तो काम नहीं करेगा (तो, /public/static/*.js
से मेल खाएगी /public/static/foo.js
लेकिन नहीं/public/static/foo/bar.js
।)
,
public/static/foo.js
और
foo/public/static/bar.js
की तरह पथ मिलान।
संपादित करें: केवल प्रमुख स्लैश को हटाने से काम नहीं किया जाएगा - क्योंकि पैटर्न में अभी भी एक स्लैश होता है, यह गिट द्वारा एक सादे, गैर-रिकर्सिव शैल ग्लोब के रूप में माना जाता है (धन्यवाद @Joey Hoer इसे इंगित करने के लिए)।
रूप @ptyx सुझाव दिया, तो आप फ़ाइल <repo>/public/static/.gitignore
बनाने करने की जरूरत है और सिर्फ इस पैटर्न में शामिल हैं क्या:
*.js
वहाँ, कोई प्रमुख /
है, इसलिए यह पथ के किसी भी हिस्से में से मेल खाएगा, और वह पैटर्न केवल /public/static
निर्देशिका और इसकी उप-निर्देशिकाओं में फ़ाइलों पर लागू किया जाएगा।
स्रोत
2012-05-23 05:59:44
की [उप-निर्देशिका में कुछ फ़ाइलों Git-उपेक्षा, लेकिन सभी नहीं] संभव डुप्लिकेट (http://stackoverflow.com/questions/6794717/git-ignore-certain-files-in-sub -डायदेश-लेकिन-नहीं-सभी) –