.itignore फ़ाइल, मुझे अपने xcode प्रोजेक्ट में कहाँ डालनी चाहिए?


102

मैं UserInterfaceState.xcuserstateअपनी XCode4 परियोजना में अपनी फ़ाइल को अनदेखा करना चाहता हूं, लेकिन मुझे .gitignoreफ़ाइल कहां रखनी चाहिए ? क्या यह .gitफ़ोल्डर के अंदर है ? या बाहर? .gitसाथ ही फ़ोल्डर में है ProjectName.xcodeprojफ़ाइल


संभावित डुप्लिकेट फ़ाइल कहाँ से
पवन गुप्ता

जवाबों:


124

आप .gitignoreअपनी परियोजना के हर एक निर्देशिका में हो सकते हैं।

हालाँकि, .gitignoreप्रोजेक्ट रूट डायरेक्टरी पर एक एकल फ़ाइल रखने के लिए सबसे अच्छा अभ्यास है , और उन सभी फ़ाइलों को रखें जिन्हें आप इसे अनदेखा करना चाहते हैं, जैसे:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

एक बार जब आप .gitignoreफ़ाइल बनाते हैं , तो जिन फ़ाइलों में परिवर्तन होते हैं या रिपॉजिटरी में नए होते हैं उन्हें अनदेखा नहीं किया जाएगा।

आपके पास एक वैश्विक स्थानीय git उपेक्षा फ़ाइल भी हो सकती है, जो आपके सभी git रिपॉजिटरी का प्रबंधन करेगी।

git config --global core.excludesfile ~/.gitignore_global

यह विकल्प अनदेखा फ़ाइलों के लिए विशेष रूप से दिलचस्प है जो गैर-परियोजना से संबंधित हैं, जैसे कि आईडीई संबंधित फाइलें और इसी तरह।


1
यह .gitignore मूल में या आपके मास्टर / स्थानीय-रेपो कॉपी में जोड़ा जाना चाहिए?
आदिल

1
स्थानीय रूप से (निश्चित रूप से आप इसे किसी बिंदु पर उत्पत्ति के लिए आगे बढ़ाने जा रहे हैं)।
डैनियल रिबेरो

21

वहाँ git में फ़ाइलों को अनदेखा करने के लिए दृष्टिकोण हैं:

  1. ग्लोबल गिट इग्नोर: - इस एप्रोच में आपके मशीन में प्रत्येक गिट डायरेक्टरी पर आपके कस्टम नियम लागू होंगे। आमतौर पर यह फ़ाइल ~/.gitignore_globalपथ के तहत बनाई जा सकती है । यह अच्छा है यदि आप कुछ प्रकार की फ़ाइलों को बाहर करना चाहते हैं जो ओएस या किसी अन्य लॉगिंग, कैशिंग और आदि टूल द्वारा उत्पन्न होती हैं।
  2. प्रति-रिपॉजिटरी git उपेक्षा: - इस दृष्टिकोण में आपके कस्टम नियम आपकी मशीन में विशिष्ट गिट डायरेक्टरी पर लागू होंगे। स्थानीय रिपॉजिटरी नियमों को .git/info/excludeआपकी रिपॉजिटरी में फ़ाइल में जोड़ा जा सकता है। इस फ़ाइल के तहत निर्दिष्ट नियम प्रतिबद्ध नहीं होंगे, जिसका अर्थ है कि इसे दूसरों के साथ साझा नहीं किया जाएगा। आम तौर पर यह दृष्टिकोण स्थानीय रूप से उत्पन्न फ़ाइलों को कम करने से रोकने के लिए उपयोगी है। उदाहरण के लिए, आपके संपादक द्वारा बनाई गई फ़ाइलों के लिए।
  3. प्रति पथ गिट उपेक्षा: - इस मामले में आपके कस्टम नियम विशिष्ट गिट रिपॉजिटरी उप पथ पर लागू होंगे। आप .gitignoreअपने विशिष्ट भंडार के किसी भी उप पथ में बना सकते हैं । यह दृष्टिकोण आमतौर पर केवल विशिष्ट रिपॉजिटरी के विशिष्ट फ़ोल्डर के तहत कुछ प्रकार की फ़ाइल को अनदेखा करने के लिए उपयोग किया जाता है। जबकि इस फाइल को अन्य पथों और अन्य रिपॉजिटरी द्वारा नियंत्रित संस्करण में जोड़ा जा सकता है।

इसलिए, मेरा सुझाव है कि यदि आप UserInterfaceState.xcuserstateअपने सभी रिपॉजिटरी में अपनी विशिष्ट फ़ाइल ( ) को अनदेखा करना चाहते हैं, तो सबसे अच्छा तरीका यह है कि ग्लोबल गिट इग्निशन दृष्टिकोण का उपयोग करें। हालाँकि, यदि आपकी फ़ाइल केवल विशिष्ट रिपॉजिटरी में उत्पन्न होती है, तो आप प्रति-रिपॉजिटरी git उपेक्षा दृष्टिकोण का उपयोग कर सकते हैं।

अधिक जानकारी के लिए आप इस महान ब्लॉग पोस्ट को पढ़ सकते हैं । और वहां प्रति भाषा विशिष्ट git उपेक्षा नियमों की स्थापना की जा सकती है । और आप इस वेब साइट का उपयोग करके विशिष्ट भाषा, टूल या ओएस के लिए सामान्य गिट उपेक्षा नियमों को ऑटो कर सकते हैं ।


20

आपको। रूटिग्नोर फाइल को प्रोजेक्ट रूट डायरेक्टरी में रखना चाहिए।


12

मुझे .gitignoreफ़ाइल कहाँ डालनी चाहिए ?, क्या यह .git फ़ोल्डर के अंदर है?

फोल्डर के .gitignoreअंदर नहीं है .git
हालाँकि, एक .git/info/excludeफ़ाइल है, जो आपको स्थानीय रूप से एक फ़ाइल को बाहर करने की अनुमति देती है, आम तौर पर जब आप केवल इस विशिष्ट रेपो के लिए एक फ़ाइल को बाहर करना चाहते हैं ( इस तरह एक उपनाम के साथ ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

यदि आपको सभी समान प्रोजेक्ट के लिए इस फ़ाइल को बाहर करने की आवश्यकता है , जैसा कि एल्नूर अब्दुर्रखिमोव ने अपने उत्तर में उल्लेख किया है , तो इसे वैश्विक रूप से बाहर करें।

echo UserInterfaceState.xcuserstate >> ~/.gitignore

लेकिन, जैसा कि " क्या हमें * .xcuserstate? " में जांचने की आवश्यकता है , अगर यह एक प्रकार की फाइल है, जिसे उस रेपो के किसी भी उपयोगकर्ता द्वारा नजरअंदाज किया जाना चाहिए, तो मैं वास्तव में रेपो के शीर्ष पर एक .gitignore का संस्करण बनाऊंगा। समान सामग्री के साथ:

*.xcuserstate 

इस तरह, उस रेपो के किसी भी उपयोगकर्ता को यह एहसास भी नहीं होगा कि यह फ़ाइल मौजूद है और जेनरेट की गई है (जो भी इसका नाम है): यह git statusकभी भी दिखाई नहीं देगा ।

या आप पूरी तरह से (या तो एक वैश्विक , या एक संस्करण में, सामान्य GitHub फ़ाइल की तरह अनदेखाxcuserdata/ कर सकते हैं ।.gitignoreObjective-C.gitignore


आप जीआईटी के दिग्गज हैं! हमेशा आपके उत्तर सबसे उपयोगी होते हैं।
जद चहाइन

@JadChahine धन्यवाद। मदद करने के लिए खुशी है (कम से कम, उन उत्तरों को लिखने से मुझे गिट सीखने में मदद मिलती है)
वॉनसी

@tymac काफी नहीं;) मैं बस नियमित रूप से यात्रा करता हूं ( meta.stackexchange.com/questions/122976/… )
VonC

9

आपको उपकरण-विशिष्ट फ़ाइलों को किसी प्रोजेक्ट की फ़ाइल में नहीं रखना चाहिए .gitignore- जब तक कि उपकरण को प्रोजेक्ट के प्रत्येक डेवलपर द्वारा उपयोग करने की आवश्यकता न हो।

इसके बजाय, .gitignoreअपनी घरेलू निर्देशिका में अपनी व्यक्तिगत वैश्विक फ़ाइल बनाएं और इसे सक्रिय करें:

git config --global core.excludesfile ~/.gitignore

अब आप जो भी फाइल अपने डेवलपमेंट टूल द्वारा फाइल में जेनरेट करते हैं, उसे डाल सकते हैं .gitignore


6

आमतौर पर, .gitignoreपरियोजना के रूट डायरेक्टरी में फ़ाइल को शामिल करने के लिए इसका सबसे अच्छा अभ्यास है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.