Mac पर जेनरेट की गई फ़ाइलों को सोर्स कोड से अलग रखने के लिए, रिपॉजिटरी के अंदर एक समर्पित आउटपुट फ़ोल्डर बनाएं, फिर उस फ़ोल्डर को रिपॉजिटरी की .gitignore फ़ाइल में जोड़ें। Finder फ़ोल्डरों को बनाने और उनकी जांच करने में आपकी मदद करता है; Git के इग्नोर नियम जेनरेट किए गए आउटपुट को भविष्य के कमिट से बाहर रखते हैं। यह उन फ़ाइलों के लिए काम करता है जिन्हें Git पहले से ट्रैक नहीं कर रहा है, इसलिए इस पर निर्भर रहने से पहले रिपॉजिटरी का स्टेटस जांच लें।
Finder में एक आउटपुट फ़ोल्डर बनाएं
Finder में रिपॉजिटरी फ़ोल्डर खोलें और File > New Folder या Shift-Command-N का उपयोग करके जेनरेट किए गए आउटपुट के लिए एक फ़ोल्डर बनाएं, जैसे कि build या dist। सोर्स फ़ाइलों को उनके मौजूदा स्थानों पर ही रखें और अपने बिल्ड टूल को उसका आउटपुट उस फ़ोल्डर में लिखने के लिए कॉन्फ़िगर करें। फ़ोल्डर का नाम टूल के वास्तविक आउटपुट पाथ से मेल खाना चाहिए; केवल फ़ोल्डर बनाने से बिल्ड रीडायरेक्ट नहीं होता है। Apple ने Finder में फ़ोल्डर बनाने के चरणों का विवरण अपने Finder में फ़ाइलों को व्यवस्थित करने के लिए गाइड में दिया है।
यदि आप निश्चित नहीं हैं कि कौन सी फ़ाइलें जेनरेट की गई हैं, तो किसी भी चीज़ को स्थानांतरित या बहिष्कृत करने से पहले अपने बिल्ड टूल के कॉन्फ़िगरेशन या प्रोजेक्ट दस्तावेज़ों की जांच करें। कुछ जेनरेट की गई फ़ाइलें प्रोजेक्ट के लिए आवश्यक होती हैं या उन्हें जानबूझकर चेक इन किया जाता है। यदि प्रोजेक्ट को उनकी आवश्यकता है, तो उन फ़ाइलों को वर्शन कंट्रोल के तहत रखें।
जेनरेट किए गए फ़ोल्डर को .gitignore में जोड़ें
रिपॉजिटरी रूट में, किसी टेक्स्ट एडिटर में .gitignore नाम की एक फ़ाइल बनाएं या खोलें। Finder फ़ोल्डर बना सकता है और फ़ाइलें स्थानांतरित कर सकता है, लेकिन यह Git इग्नोर नियंत्रण प्रदान नहीं करता है; Git इग्नोर पैटर्न को .gitignore और संबंधित कॉन्फ़िगरेशन से पढ़ता है। .gitignore फ़ाइल के सापेक्ष वास्तविक पाथ का उपयोग करके आउटपुट डायरेक्टरी के लिए एक नियम जोड़ें। उदाहरण के लिए:
/build/
शुरुआती स्लैश इस पैटर्न को रिपॉजिटरी रूट पर एंकर करता है, और अंत का स्लैश इसे डायरेक्टरी से मेल कराता है। यदि आपका जेनरेट किया गया आउटपुट नेस्टेड है, तो इसके बजाय उसके पाथ का उपयोग करें, जैसे कि /app/generated/। Git का gitignore दस्तावेज़ पैटर्न मिलान की व्याख्या करता है और बताता है कि पूरे प्रोजेक्ट के नियम .gitignore में होने चाहिए ताकि उन्हें अन्य क्लोन के साथ साझा किया जा सके।
ऐसे लोकल जेनरेट किए गए फ़ोल्डर के लिए जो रिपॉजिटरी पर काम करने वाले अन्य लोगों को प्रभावित नहीं करना चाहिए, इसके बजाय इसका नियम .git/info/exclude में जोड़ें। Git इसे .gitignore के रिपॉजिटरी-विशिष्ट विकल्प के रूप में प्रलेखित करता है। कमिट किए गए .gitignore नियम का उपयोग तब करें जब आउटपुट प्रोजेक्ट पर सभी के लिए जेनरेट किया गया हो और सभी योगदानकर्ताओं के लिए बहिष्कृत किया जाना चाहिए।
नियम की पुष्टि करें और पहले से ट्रैक की गई फ़ाइलों को संभालें
Terminal खोलें और रिपॉजिटरी डायरेक्टरी में जाएं। स्टेटस जांचें, फिर Git से पूछें कि जेनरेट किए गए पाथ पर कौन सा नियम लागू होता है:
git status --short
git check-ignore -v build/example-file
build/example-file को अपने आउटपुट फ़ोल्डर के तहत मौजूद किसी पाथ से बदलें। -v विकल्प मेल खाने वाले इग्नोर नियम और उसमें शामिल फ़ाइल की रिपोर्ट करता है। यदि Git कोई मिलान न होने की रिपोर्ट करता है, तो पाथ और पैटर्न की पुष्टि करें: .gitignore में पाथ फ़ाइल के स्थान के सापेक्ष व्याख्या किए जाते हैं, और किसी नियम को किसी अन्य मेल खाने वाले नियम द्वारा ओवरराइड किया जा सकता है। Git का check-ignore संदर्भ बताता है कि इग्नोर मिलानों का निरीक्षण कैसे करें।
इग्नोर नियम उन फ़ाइलों को ट्रैक करना बंद नहीं करता है जो पहले से ही Git में कमिट या स्टेज की गई हैं। Git स्पष्ट रूप से कहता है कि ट्रैक की गई फ़ाइलें इग्नोर नियमों से अप्रभावित रहती हैं। पहले से ट्रैक की गई जेनरेट फ़ाइल को लोकल कॉपी को वहीं छोड़ते हुए इंडेक्स से हटाने के लिए, सटीक पाथ के साथ git rm --cached का उपयोग करें, फिर कमिट करने से पहले बदलाव की समीक्षा करें। उदाहरण के लिए:
git rm --cached build/example-file
git status --short
यह Git के इंडेक्स से केवल नामित फ़ाइल को हटाता है; यह डायरेक्टरी में मौजूद प्रत्येक फ़ाइल को स्वचालित रूप से अनट्रैक नहीं करता है। परिवर्तन को कमिट करने से पहले, विशेष रूप से यदि आप पूरे आउटपुट ट्री को अनट्रैक करने का इरादा रखते हैं, तो स्टेटस आउटपुट की समीक्षा करें। फ़ाइलों को अनदेखा करने के लिए GitHub गाइड भी लोकल बहिष्करणों और साझा .gitignore नियमों के बीच के अंतर की व्याख्या करता है।
Git नियमों को लागू करने के लिए नहीं, बल्कि नामों का निरीक्षण करने के लिए Finder का उपयोग करें
Finder फ़ाइल प्रकारों का निरीक्षण करना आसान बना सकता है: Finder > Settings > Advanced चुनें और Show all filename extensions सक्षम करें। जब नाम समान हों, तो यह सोर्स फ़ाइल को जेनरेट की गई फ़ाइल से अलग पहचानने में मदद कर सकता है। Apple नोट करता है कि एक्सटेंशन अन्यथा छिपे हो सकते हैं और केवल फ़ाइल का प्रारूप बदलने के लिए फ़ाइल नाम एक्सटेंशन बदलने के खिलाफ सलाह देता है। Apple के फ़ाइल नाम एक्सटेंशन दिखाने या छिपाने के निर्देश देखें।
इसलिए विश्वसनीय विभाजन यह है: Finder जेनरेट किए गए आउटपुट के लिए एक दृश्यमान फ़ोल्डर प्रदान करता है, बिल्ड टूल वहां लिखता है, और Git इग्नोर नियम पात्र अनट्रैक की गई फ़ाइलों को वर्शन कंट्रोल से बाहर रखते हैं। जब भी प्रोजेक्ट का बिल्ड कॉन्फ़िगरेशन बदलता है, वास्तविक आउटपुट पाथ और Git स्थिति की जांच करें।
स्रोत
फ़ाइलों को अनदेखा करना — GitHub Docs