2010-02-23 24 views
31

से एक्सटेंशन वाली सभी फ़ाइलों को निकालें और अनदेखा करें, मैं कुछ अन्य डेवलपर्स के साथ एक डीजेंगो प्रोजेक्ट पर काम कर रहा हूं और हमने हाल ही में महसूस किया है कि हमारे ऐप में सभी .pwc फ़ाइलों को कमेटी और रिपॉजिटरी होने का कारण बनता है अव्यवस्थित।गिट रिपोजिटरी

क्या कोई तरीका है कि मैं अपने गिट भंडार में सभी बाल निर्देशिकाओं से सभी .pwc फ़ाइलों को हटा सकता हूं और फिर भविष्य में किसी भी प्रतिबद्धता के लिए उन्हें अनदेखा कर सकता हूं?

उत्तर

42

तरीके बहुत उन्हें हटाने के लिए:

git ls-files | grep '\.pwc$' | xargs git rm 

find . -name *.pwc | xargs git rm 

नोट: यदि आप उन्हें प्रतिबद्ध नहीं किया है, सिर्फ rm, नहीं git rm का उपयोग करें।

भविष्य में उन्हें अनदेखा करने के लिए, बस .gitignore में * .pwc जोड़ें। (यदि आपके पास कोई नहीं है, तो अपनी रिपोजिटरी के शीर्ष स्तर पर .gitignore नाम की एक फ़ाइल बनाएं, और "* .pwc" कहने वाली एक पंक्ति जोड़ें)

+0

में यह रखने के लिए मैं बाद में एक .gitignore की स्थापना की थी, लेकिन * उनके लिए नजरअंदाज कर दिया रखना .pwc होगा ऐप के हर निर्देशिका स्तर? – BenMills

+0

.gitignore को उस सब की सभी उप-निर्देशिकाओं में सम्मानित किया जाता है जहां यह पाया जाता है। यही कारण है कि वे आम तौर पर शीर्ष स्तर पर रखा जाता है। ध्यान दें कि यदि आप किसी दिए गए उपनिर्देशिका के लिए केवल नियमों को अनदेखा करना चाहते हैं, तो आप उन्हें निम्न स्तर पर रख सकते हैं। – Cascabel

3

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

15

आप भी कर सकते हैं का उपयोग करें:

git rm -r '*.pwc' 

और फिर उन फ़ाइलों Git द्वारा नजरअंदाज कर दिया है:

echo '*.pwc' >> .gitignore 

पिछले एक मामले में है अगर आप पहले से ही, .gitignore फ़ाइल है यदि नहीं, तो हमें एक '>' पर हस्ताक्षर ।

+1

सच है, लेकिन यह उपनिर्देशिकाओं को नहीं देखेगा। – jiehanzheng

+0

@jiehanzheng यह सही नहीं है, '-r' ध्वज उपनिर्देशिका में फ़ाइलों को भी हटा देगा। – kaveish

0

में विंडोज यह मेरे लिए काम किया:

git rm -r '*.pwc' -f 

और .gitignore

echo '*.pwc' >> .gitignore 
संबंधित मुद्दे