GitHub कोड सहयोग और रिपॉजिटरी शेयरिंग के क्षेत्र में एक अग्रणी अग्रणी के रूप में उभरा है। गिटहब मुख्य रूप से एक संस्करण नियंत्रण सॉफ्टवेयर है जो उपयोगकर्ताओं को वितरित संस्करण नियंत्रण और एससीएम (स्रोत कोड प्रबंधन) के नियंत्रण की अनुमति देता है। इस प्लेटफ़ॉर्म का उपयोग दुनिया भर के प्रमुख व्यवसायों और कंपनियों द्वारा किया जाता है।
इस तरह के प्लेटफॉर्म की अपनी तकनीकी और समस्याएं हैं। एक विशिष्ट समस्या जो कोडर्स ने अनुभव की वह यह थी कि .gitignore GitHub में काम नहीं कर रहा था। प्लेटफॉर्म ने या तो .gitignore को नजरअंदाज कर दिया या आंशिक रूप से काम किया। यह ध्यान रखना दिलचस्प है कि समस्या प्रत्येक मामले में थोड़ी भिन्न हो सकती है क्योंकि प्रत्येक मामला पूरी तरह से अलग परिदृश्य है। हालांकि, जिन समाधानों को हम सूचीबद्ध करते हैं उनमें ऐसे समाधान शामिल होंगे जो सार्वभौमिक रूप से काम करेंगे।
.gitignore क्या है?
गिट (या गिटहब) आपकी कार्यशील निर्देशिका में प्रत्येक फ़ाइल को देखता है। यह प्रत्येक फ़ाइल को तीन में से एक के रूप में चिह्नित करता है:
- ट्रैक किया गया: ये फ़ाइलें या तो प्रतिबद्ध हैं या इतिहास में पहले ही मंचित हैं।
- अनट्रैक किया गया: ये वे फाइलें हैं जिनका पहले मंचन या प्रतिबद्ध नहीं किया गया है।
- अनदेखा: ये वे फ़ाइलें हैं जिन्हें उपयोगकर्ता ने स्वयं Git को पूरी तरह से अनदेखा करने के लिए कहा था।
ये अनदेखी फाइलें परिदृश्य के अनुसार भिन्न हो सकती हैं और ज्यादातर मशीन से उत्पन्न फाइलें या कलाकृतियों का निर्माण करती हैं। यह सामान्य अभ्यास है; हो सकता है कि आप अपनी आवश्यकताओं के अनुसार विभिन्न अन्य फाइलों को अनदेखा कर रहे हों। इन फाइलों के कुछ उदाहरण हैं:
- संकलित कोड: ये फ़ाइलें आमतौर पर एक्सटेंशन .class, .pyc, .ccp आदि के साथ होती हैं।
- छिपी हुई सिस्टम फ़ाइलें: ये ऐसी फाइलें हैं जो सिस्टम द्वारा इसके संचालन के लिए उपयोग की जाती हैं लेकिन सादे दृश्य से छिपी हुई हैं, उदाहरण के लिए, DS_Store या Thumbs.db, आदि।
- आउटपुट निर्देशिका बनाएं: ये ज्यादातर /bin, /out, आदि की निर्देशिकाओं में से हैं।
- निर्भरता कैश: ये फ़ाइलें /नोड या /पैकेज मॉड्यूल की सामग्री हो सकती हैं।
- IDE कॉन्फ़िगरेशन फ़ाइलें: ये कॉन्फिग फाइलें हैं जो ज्यादातर आपके आईडीई सॉफ्टवेयर द्वारा बनाई या प्रबंधित की जाती हैं।
- रनटाइम पर जेनरेट की गई फ़ाइलें: कुछ प्रोग्राम ऐसे होते हैं जो रन टाइम पर फाइल बनाते हैं। यदि ऐसा कोई कोड चलाया जाता है, तो कुछ फ़ाइलें आपके कार्यशील फ़ोल्डर में रन टाइम पर उत्पन्न हो सकती हैं और आप उन्हें Git में अनदेखा कर सकते हैं।
आप जिस भी फाइल को नजरअंदाज करना चाहते हैं, उसे .gitignore नाम की एक विशेष फाइल में ट्रैक किया जाता है, जिसे ज्यादातर आपके वर्किंग रिपॉजिटरी के रूट में चेक किया जाता है। इस विषय पर GitHub के आधिकारिक दस्तावेज़ीकरण के अनुसार, कोई विशिष्ट gitignore कमांड नहीं है। इसके बजाय, आपको उस फ़ाइल को मैन्युअल रूप से संपादित करना होगा जिसे आप अनदेखा करना चाहते हैं। .gitignore फ़ाइल में पैटर्न होते हैं जो आपके कार्यशील रिपॉजिटरी में फ़ाइल नामों से मेल खाते हैं और इनका उपयोग यह निर्धारित करने में मदद के लिए किया जाता है कि किसी विशिष्ट फ़ाइल को अनदेखा किया जाना चाहिए या नहीं।
क्या कारण हैं .gitignore काम नहीं कर रहा है?
हो सकता है कि .gitignore सुविधा पूरी तरह से काम कर रही हो लेकिन आपने इसे ठीक से कॉन्फ़िगर नहीं किया होगा। हमारे सभी सर्वेक्षणों में, हम इस निष्कर्ष पर पहुंचे कि मॉड्यूल वास्तव में काम कर रहा था। कोडर्स द्वारा सुविधा का उपयोग करने में असमर्थ होने का मुख्य कारण यह है कि उन्होंने फ़ाइल को ठीक से कॉन्फ़िगर नहीं किया है या कुछ शर्तें हैं जो अंतर्निहित कोड में पूरी नहीं हो रही हैं।
यहां कुछ उपाय दिए गए हैं जो आपके काम आ सकते हैं। प्रत्येक समाधान आपके मामले में लागू नहीं हो सकता है, इसलिए सुनिश्चित करें कि यदि प्रारंभिक शर्तें पूरी नहीं हो रही हैं, तो आप अगले समाधान पर स्विच करें।
समाधान 1:.gitignore फ़ाइल की जांच करना
एक दिलचस्प मामला सामने आया जहां हमने देखा कि .gitignore फ़ाइल गलत प्रारूप में बनाई गई थी। यह विशेष समस्या तब हुई जब उपयोगकर्ताओं ने विंडोज ओएस में नोटपैड के डिफ़ॉल्ट एप्लिकेशन का उपयोग करके फ़ाइल बनाई। यह पता चला है कि नोटपैड एएनएसआई प्रारूप के बजाय यूनिकोड में फ़ाइल लिखता है। इस समाधान में, हम नोटपैड के परिवर्तनों को .gitignore के सही प्रारूप में सहेजेंगे और देखेंगे कि क्या यह समस्या को ठीक करता है।
नोट: नोटपैड का उपयोग करके नई फ़ाइल बनाते समय आपको फ़ाइल से .txt के एक्सटेंशन को हटाना होगा।
- नोटपैड में कोड लिखने या नए टेक्स्ट डॉक्यूमेंट में बदलाव करने के बाद, फाइल पर क्लिक करें। और इस रूप में सहेजें . चुनें ।
- अब सामने है एन्कोडिंग , एएनएसआई . चुनें . अब .txt के फाइल एक्सटेंशन को हटा दें और फाइल को '.gitignore . नाम से सेव करें '। सही निर्देशिका का चयन करें और सहेजें।
- अब निर्देशिका में नेविगेट करें और जांचें कि क्या सही फ़ाइल बनाई गई है। अब इसे Git के साथ फिर से टेस्ट करें और देखें कि इग्नोर फीचर उम्मीद के मुताबिक काम कर रहा है या नहीं।
डेवलपर्स को विंडोज़ में डिफ़ॉल्ट नोटपैड का उपयोग करने से बचना चाहिए। इसके बजाय, आपको उचित 'प्रोग्रामर' नोटपैड का उपयोग करना चाहिए। कुछ उदाहरणों में नोटपैड++ आदि शामिल हैं। उनमें, आपको इस तरह की समस्या नहीं होगी।
नोट: यदि आपकी फ़ाइल पहले से ही UNICODE प्रारूप में सहेजी गई है, तो आपको ANSI प्रारूप में सामग्री को ठीक से सहेजना चाहिए यदि आप चाहते हैं कि आपकी फ़ाइल का Git द्वारा ठीक से पता लगाया जाए।
समाधान 2:उस फ़ाइल की जांच करना जिसे आप अनदेखा करने का प्रयास कर रहे हैं
एक अन्य शर्त जिस पर .gitignore काम करता है, वह यह है कि आपकी फ़ाइल रिपॉजिटरी का अभी तक हिस्सा नहीं होनी चाहिए। . यह एक बहुत ही आवश्यक पहलू है जैसे कि यह सच है, फ़ाइल को नज़रअंदाज़ नहीं किया जाएगा क्योंकि यह पहले से ही जोड़ा जा चुका है भंडार को। गिट इसे अनदेखा नहीं कर सकता है, भले ही आप इसका नाम या नियम .gitignore फ़ाइल में रखें। तो संक्षेप में, Git केवल अनट्रैक की गई फ़ाइलों को अनदेखा करता है ।
आपको अपनी संरचना (भंडार) को देखना चाहिए और सुनिश्चित करना चाहिए कि जिस फ़ाइल को आप वर्तमान में अनदेखा करने का प्रयास कर रहे हैं वह भंडार में नहीं जोड़ा गया है। यदि ऐसा है, तो आपको फ़ाइल को रिपॉजिटरी से हटाना होगा और नवीनतम परिवर्तन किए जाने के बाद, इसका नाम .gitignore में जोड़ें (आप फ़ाइल की सामग्री को कॉपी भी कर सकते हैं और इसे हटाने के बाद, इसे किसी अन्य नाम से दोहरा सकते हैं) ।
समाधान 3:फ़ाइलों को रिपॉजिटरी में फिर से जोड़ना
यदि आपने पहले से ही .gitignore में नियम जोड़े हैं, लेकिन जिन फ़ाइलों को आप अनदेखा करना चाहते हैं, वे पहले ही जोड़ दी गई हैं, हम फ़ाइलों को फिर से जोड़ सकते हैं। जोड़ने का मतलब है कि हम गिट के सूचकांक से सब कुछ हटा देंगे और फिर सब कुछ वापस अपने भंडार में जोड़ देंगे। जब हम फिर से नए सिरे से फ़ाइलें जोड़ते हैं, तो उन नियमों को ध्यान में रखा जाएगा जिन्हें आपने .gitignore में जोड़ा है और केवल सही फ़ाइलें जोड़ी जाती हैं।
नोट: इस समाधान को करने से पहले आपको अपने कोड का बैकअप कहीं और लेना चाहिए। बैकअप लेना हमेशा अच्छा होता है।
- निम्न आदेश निष्पादित करें। यह अस्थिर होगा और पुनरावर्ती तरीके से git अनुक्रमणिका से आपकी फ़ाइलों के पथ को हटा देगा।
git rm -r --cached .
- इसे निष्पादित करने के बाद, आपको निम्न आदेश निष्पादित करना चाहिए। यह आपकी सभी फाइलों को वापस जोड़ देगा और चूंकि .gitignore के नियम होंगे, केवल सही फाइलों को ही अपडेट किया जाएगा।
git add .
- अब हम नीचे दिए गए कोड का उपयोग करके आपकी सभी फाइलों को वापस इंडेक्स में डाल देंगे:
git commit -m ".gitignore is now working"
अब अपनी फाइलों का निरीक्षण करें और देखें कि क्या समस्या हल हो गई है और आप बिना किसी समस्या के फिर से .gitignore का उपयोग कर सकते हैं।