2009-06-09 16 views
18

मैं msysgit का उपयोग कर रहा हूं और एक प्रोजेक्ट पेड़ है जिसमें पेड़ में कई बिन/फ़ोल्डर्स हैं। प्रोजेक्ट की जड़ में .gitignore फ़ाइल का उपयोग करके मुझे प्रोजेक्ट ट्री में कहीं भी बिन/फ़ोल्डर के भीतर रहने वाली सभी .dll फ़ाइलों को अनदेखा करने की आवश्यकता है। मैंने "bin/*। Dll" की कोशिश की है लेकिन यह काम नहीं करता है, मुझे लगता है कि यह केवल परियोजना के रूट में बिन/फ़ोल्डर के खिलाफ काम कर रहा है।गिट - विशिष्ट फ़ोल्डरों में निहित कुछ फ़ाइलों को अनदेखा करें

+0

मैं पुष्टि करते हैं "Git --dry रन * .dll जोड़ें" केवल गैर पर ध्यान नहीं दिया .dll जोड़ें। क्या आप अपनी .gitignore फ़ाइल की सामग्री पोस्ट कर सकते हैं? – VonC

+0

आप सही हैं: '**/bin/*। Dll' केवल 'x/bin/z.dll' (गहराई 2) के लिए काम करता है, न कि 'x/y/bin/z.dll' (गहराई 3)। अब इसमें देख रहे हैं। – VonC

+0

मुझे यकीन नहीं है कि निर्देशिका के गिटिनोरोर पैटर्न समर्थन रिकर्सिव डिटेक्शन ... मैंने अपना जवाब संशोधित किया है। – VonC

उत्तर

9

अद्यतन अगस्त 2016 (सात साल बाद, Git 2.9.3/Git 2.10)

**/bin/*.dll 

कि किसी भी गहराई के लिए काम करता है।


मूल जवाब (2009, Git 1.6)

तुम कोशिश किया:

**/bin/*.dll 

यह करता है मेरी msysgit1.6.3 (Git की मूल निर्देशिका में एक .gitignore फ़ाइल के साथ साथ काम कार्यक्षेत्र)।

वास्तव में ऊपर केवल उपेक्षा होगा 'x/bin/z.dll', नहीं 'x/y/bin/z.dll'।

एक और वाक्य रचना हो सकता है:

**/*/bin/*.dll 

लेकिन वह केवल गहराई 3 मिलेगा, नहीं गहराई 2!

तो अगर आप भी कई जगह है जहाँ * .dll ध्यान नहीं दिया जा करने की जरूरत है की जरूरत नहीं है, सबसे आसान समाधान अब भी उन 'बिन' निर्देशिका में एक स्थानीय .gitignore फ़ाइल ...

या का एक संग्रह होगा एक .gitignore फ़ाइल में

bin/*.dll 
**/bin/*.dll 
**/*/bin/*.dll 
**/**/*/bin/*.dll 

और इतने पर, सब: मुख्य पहले गहराई को कवर करने के निर्देश।

+0

मैं msysgit 1.6.3 का भी उपयोग कर रहा हूं लेकिन पैटर्न **/bin/*। dll काम नहीं करता है। मैंने उस रूट को रूट में मेरे .gitignore में जोड़ा और फिर रूट से "git add --dry-run * .dll" को आजमाया और यह मेरे प्रोजेक्ट ट्री के बिन/फ़ोल्डर्स में निहित मेरी .dll फ़ाइलों को सूचीबद्ध किया। –

13

मेरे पास मेरी फ़ाइल में /bin है और ऐसा लगता है कि यह काम करता है। यह पूरे फ़ोल्डर को अनदेखा करता है (इसमें विशिष्ट फाइलों के विपरीत)

यहां अभी तक पूर्ण सामग्री (अभी भी विकसित) हैं।

.svn* 
obj/ 
bin/ 
*.suo 
*.user 
Log/ 
log/ 
*.db 
+0

यह काम करता है। कम से कम मेरे लिए। गिट संस्करण 1.7.2.5 –

+0

हां। अति उत्कृष्ट! मेरे लिए काम करता भी – gpol

0

*/बिन

मुझे लगता है कि चाहते हैं कि */bin/साथ ही होगा मेरे लिए काम किया।

+0

यह केवल गहराई 1 करने के लिए काम करता है: http://www.kernel.org/pub/software/scm/git/docs/gitignore.html – I82Much

+0

"पैटर्न को वाइल्डकार्ड पथ नाम में एक से मेल नहीं खाएगी /" तो क्या काम करेगा? \ */Bin \ *? मुझे लगता है कि मैंने बाद में ऐसा किया ... एक अलग निर्देशिका के लिए। – rball

14

बस एक ही समस्या थी और एहसास हुआ: फ़ाइलों को पहले ही जोड़ा गया था और गिट में चेक किया गया था।

अंतर को कैसे पहचानें: गिट ने फ़ाइलों को "नया" नहीं दिखाया, बल्कि "संशोधित" के रूप में दिखाया। इस विवरण ने मुझे काफी समय लगाया है ...

यदि यह समस्या है, तो बस इन फ़ाइलों को "git rm" करें और शुरू करें। अचानक, .gitignore उम्मीद के रूप में काम करना शुरू कर देता है।

+1

यह मेरे लिए काम करता है, लेकिन गिट को शामिल करने के लिए मुझे सबसे कमजोर चीज़ है। – BryanGrimes

+0

git rm -f -r/path # फ़ोल्डर को बल और निकालने के लिए। – tgkprog

4

। विंडोज़ पर गिटिनोरोर, बस काम नहीं कर रहा है। मैं msysgit v 1.7.6 बीटा का उपयोग कर रहा हूं, और यह सिर्फ .gitignor मैन पेज के अनुसार जिस तरह से काम करना चाहिए, काम नहीं करता है। अब, अगर मैं अपनी .gitignore फ़ाइल की सामग्री को $ GIT_DIR/जानकारी/फ़ाइल को छोड़कर, रिपो के अंदर कॉपी करता हूं, तो चीजें काम करती हैं।

तो, बहुत बेकार है कि इस दोहराया नहीं प्राप्त करता है, लेकिन यह कुछ नहीं से बेहतर है।

+0

यह काम किया! मैं खिड़कियों के लिए github का उपयोग कर रहा हूँ –

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