मैं .pycgit में फ़ाइलों को कैसे अनदेखा कर सकता हूं ?
अगर मैं इसे डाल दिया तो .gitignoreयह काम नहीं करता है। मुझे उनकी आवश्यकता है कि उन्हें अनट्रैक किया जाए और कमिट की जांच न की जाए।
मैं .pycgit में फ़ाइलों को कैसे अनदेखा कर सकता हूं ?
अगर मैं इसे डाल दिया तो .gitignoreयह काम नहीं करता है। मुझे उनकी आवश्यकता है कि उन्हें अनट्रैक किया जाए और कमिट की जांच न की जाए।
जवाबों:
अंदर डाल दो .gitignore। लेकिन gitignore(5)मैन पेज से:
· If the pattern does not contain a slash /, git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the toplevel of the work tree if not from a .gitignore file). · Otherwise, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".
इसलिए, या तो पूर्ण पथ को उपयुक्त *.pycप्रविष्टि के लिए निर्दिष्ट करें , या इसे .gitignoreरिपॉजिटरी रूट (समावेशी) से अग्रणी किसी भी निर्देशिका में एक फ़ाइल में डालें ।
आपको इसके साथ एक पंक्ति जोड़ना चाहिए:
*.pyc
करने के लिए .gitignoreअपने Git भंडार पेड़ की जड़ फ़ोल्डर में फ़ाइल सही भंडार आरंभीकरण के बाद।
जैसा कि राल्फथेनइंजा ने कहा, यदि आप इसे पहले से करना भूल गए हैं, यदि आप बस .gitignoreफ़ाइल में लाइन जोड़ते हैं, तो पहले से प्रतिबद्ध सभी .pycफ़ाइलों को अभी भी ट्रैक किया जाएगा, इसलिए आपको उन्हें रिपॉजिटरी से निकालने की आवश्यकता होगी।
यदि आप एक लिनक्स सिस्टम (या "माता-पिता और बेटे" जैसे एक MacOSX) पर हैं, तो आप इसे केवल एक लाइन कमांड के साथ जल्दी से कर सकते हैं जिसे आपको रिपॉजिटरी की जड़ से निष्पादित करने की आवश्यकता है:
find . -name "*.pyc" -exec git rm -f "{}" \;
यह सिर्फ इसका मतलब है:
वर्तमान में शुरू होने वाली निर्देशिका से, उन सभी फ़ाइलों को ढूँढता हूँ जिनका नाम एक्सटेंशन के साथ समाप्त होता है
.pyc, और फ़ाइल नाम को कमांड में पास करते हैंgit rm -f
बाद *.pycपता लगाया फ़ाइलों के रूप में Git से फाइल विलोपन, भंडार के लिए यह परिवर्तन के लिए प्रतिबद्ध है, और फिर आप अंततः जोड़ सकते हैं *.pycकरने के लिए लाइन .gitignoreफ़ाइल।
( http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ से अनुकूलित )
आपने संभवतः उन्हें डालने से पहले भंडार में जोड़ा *.pycहै .gitignore।
पहले उन्हें भंडार से हटा दें।
मैं एक पूर्व पोस्ट के वाक्य का उपयोग करने की कोशिश करता हूं और पुनरावृत्ति से काम नहीं करता, तो कुछ मदद पढ़ें और इस लाइन को प्राप्त करें:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd आवश्यक है * .it साफ करने के लिए .pignign फ़ाइल में .pyc जोड़ने के लिए
echo "*.pyc" >> .gitignore
का आनंद लें।
उत्तर के लिए @Enrico धन्यवाद।
ध्यान दें कि यदि आप virtualenv का उपयोग कर रहे हैं, तो आपके पास .pycवर्तमान में आपके द्वारा निर्देशिका में कई और फाइलें होंगी, जिन्हें उनके खोज कमांड द्वारा कैप्चर किया जाएगा।
उदाहरण के लिए:
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
मुझे लगता है कि सभी फ़ाइलों को हटाने के लिए यह हानिरहित है, लेकिन यदि आप केवल .pycअपनी मुख्य निर्देशिका में फ़ाइलों को निकालना चाहते हैं , तो बस करें
find "*.pyc" -exec git rm -f "{}" \;
यह सिर्फ app.pycगिट रिपॉजिटरी से फाइल को हटा देगा ।