.gitignore फाइलों में उन फाइलों की सूची होती है जिन्हें Git को लोकल प्रोजेक्ट में नजरअंदाज करना चाहिए। एक .gitignore फाइल आमतौर पर प्रोजेक्ट के मुख्य डायरेक्टरी में दिखाई देती है। आप सिंगल फाइल, कई फाइल, या फ़ोल्डर्स को नजरअंदाज कर सकते हैं।
आपके पास ऐसी फाइलें हो सकती हैं जिन्हें आप अपने Git रिपॉजिटरी के मुख्य संस्करण में शामिल नहीं करना चाहते। इन फाइलों में कॉन्फिगरेशन या लोकल वेरिएबल्स हो सकते हैं जो निजी हैं और अन्य सहयोगियों द्वारा नहीं देखे जाने चाहिए।
यहीं पर .gitignore फाइल काम आती है। यह फाइल आपको Git को फाइलों को नजरअंदाज करने का निर्देश देने की अनुमति देती है।
इस गाइड में, हम बात करने जा रहे हैं कि .gitignore क्या है, यह कैसे काम करता है, और आप अपना खुद का .gitignore फाइल कैसे लिख सकते हैं। बिना किसी देरी के, आइए शुरू करें!
.gitignore फाइल क्या है?
एक .gitignore फाइल उन फाइलों को सूचीबद्ध करती है जिन्हें Git नजरअंदाज करेगा। .gitignore फाइलें आमतौर पर प्रोजेक्ट के रूट डायरेक्टरी में दिखाई देती हैं। Git द्वारा ट्रैक की गई फाइलें नजरअंदाज नहीं की जातीं जब तक कि आप उन्हें प्रोजेक्ट से हटा नहीं देते।
Git जब आप उन्हें कमिट में जोड़ते हैं। इसका मतलब है कि हर फाइल, कॉन्फिगरेशन फाइलों और कंपाइल्ड कोड सहित, अगर आप * ऑपरेटर का उपयोग करते हैं तो कमिट में जोड़ दी जाएगी। यह ऑपरेटर सभी फाइलों को कमिट में स्टेज करता है।
अक्सर, डेवलपर्स आउटपुट फ़ोल्डर्स, हिडन सिस्टम फाइलों, और कंपाइल्ड कोड को नजरअंदाज करना चाहते हैं। उदाहरण के लिए, यदि आपके रिपॉजिटरी में .env फाइल है, तो आप इसे छिपाना चाह सकते हैं। ऐसा इसलिए है क्योंकि .env फाइलों में आमतौर पर API कुंजियाँ होती हैं जिन्हें आप किसी रिपॉजिटरी में कमिट नहीं करना चाहेंगे जिस तक कई लोगों की पहुंच हो।
कोई इग्नोर कमांड नहीं है जिसका उपयोग आप फाइलों को नजरअंदाज करने के लिए कर सकते हैं। आपको उन सभी फाइलों की सूची बनाने की आवश्यकता है जिन्हें आप .gitignore फाइल में नजरअंदाज करना चाहते हैं।
.gitignore फाइल कैसे लिखें
एक .gitignore फाइल बनाना सरल है। एक कमांड शेल खोलें और प्रोजेक्ट के रूट डायरेक्टरी में .gitignore नामक एक टेक्स्ट फाइल बनाएं। आप इसे touch कमांड का उपयोग करके कर सकते हैं:
हमने एक .gitignore फाइल बनाई है। हमें अपनी फाइल को किसी कॉन्फिगरेशन सेटिंग्स के साथ सेट अप करने की आवश्यकता नहीं है। हमारा अगला कदम उन फाइलों की सूची जोड़ना है जिन्हें हम नजरअंदाज करना चाहते हैं। ये फाइलें अनट्रैक्ड फाइलें बन जाती हैं, जो लोकल रिपॉजिटरी में Git द्वारा नजरअंदाज की गई फाइल का वर्णन करने वाला एक और शब्द है।
निम्नलिखित .gitignore फाइल पर विचार करें:
यह फाइल दो संसाधनों को नजरअंदाज करती है: node_modules डायरेक्टरी में सभी फाइलें और .env फाइल। हमने अपने लोकल रिपॉजिटरी में दो विशिष्ट संसाधनों को नजरअंदाज किया है: एक फ़ोल्डर और एक फाइल।
यह जावास्क्रिप्ट प्रोजेक्ट्स के साथ एक सामान्य सेटअप है। node_modules में आपके प्रोजेक्ट के लिए उपयोग की जा रही सभी निर्भरताओं की स्थानीय प्रति होती है। जब आप इन निर्भरताओं को स्वयं इंस्टॉल कर सकते हैं तो इसे रिपॉजिटरी में कमिट करना अव्यावहारिक होगा। .env फाइल में API कुंजियाँ होती हैं। ऐसी रिपॉजिटरी में API कुंजियों को साझा करना बुरी प्रथा है जिस तक कई लोगों की पहुंच हो।
मान लीजिए कि हम कई फाइलों या डायरेक्टरी को नजरअंदाज करना चाहते हैं। हम * वाइल्डकार्ड का उपयोग करके ऐसा कर सकते हैं।
आइए रिपॉजिटरी में सभी .pyc फाइलों को नजरअंदाज करें:
*.pyc से मेल खाने वाले नाम पैटर्न वाली सभी फाइलें नजरअंदाज की जाती हैं। एस्टेरिस्क वाइल्डकार्ड ऑपरेटर है।
GitHub ने gitignore फाइलों का एक उत्कृष्ट संग्रह बनाया है जिसे आप उनकी साइट पर उपयोग कर सकते हैं। GitHub के gitignore फाइलों के संग्रह को देखें।
कई .gitignore फाइलों का उपयोग करना
आप एक ही रिपॉजिटरी में कई .gitignore फाइलों का उपयोग कर सकते हैं। यह काम करता है क्योंकि .gitignore उस डायरेक्टरी के सापेक्ष होता है जिसमें इसे रखा जाता है।
हमारे पिछले उदाहरण में, हमने .gitignore को अपने प्रोजेक्ट के रूट डायरेक्टरी में रखा था। मान लीजिए कि हम diff/ फ़ोल्डर में .pyc पर समाप्त होने वाली सभी फाइलों को नजरअंदाज करना चाहते हैं। हम कमांड लाइन का उपयोग करके diff फ़ोल्डर में .gitignore नामक एक फाइल बनाकर ऐसा कर सकते हैं:
हम .gitignore फाइल में निम्न नियम जोड़ेंगे:
जब हम अपने रिपॉजिटरी में कोड कमिट करने जाएंगे, तो Git diff/ फ़ोल्डर में किसी भी फाइल को नजरअंदाज कर देगा जो .pyc पर समाप्त होती है।
यह सेटअप सबसे अच्छा है जब आपको केवल प्रोजेक्ट के भीतर कुछ फ़ोल्डर्स पर नियम लागू करने की आवश्यकता होती है। हालांकि, एक प्रोजेक्ट में कई .gitignore फाइलें होना भ्रमित करने वाला हो सकता है। एक विकल्प यह है कि जब आप बताते हैं कि आपके प्रोजेक्ट को किन फाइलों को नजरअंदाज करना चाहिए तो अधिक विशिष्ट रहें। यदि आप विशिष्ट हैं, तो आप अपने सभी नियमों को एक .gitignore फाइल में रख सकते हैं। इस फाइल पर विचार करें:
यह .gitignore एक Git प्रोजेक्ट के रूट डायरेक्टरी में है। यह Git को प्रोजेक्ट में .txt पर समाप्त होने वाली सभी फाइलों को नजरअंदाज करने का निर्देश देता है। यह Git को diff/ फ़ोल्डर में .pyc पर समाप्त होने वाली सभी फाइलों को नजरअंदाज करने का भी निर्देश देता है।
ग्लोबल Git इग्नोर नियम कैसे बनाएं
हर प्रोजेक्ट के लिए .gitignore फाइल को परिभाषित करना समय लेने वाला हो सकता है। क्या अधिक है, आप आमतौर पर पाएंगे कि आपके अधिकांश प्रोजेक्ट .gitignore नियमों के समान सेट का उपयोग करते हैं।
आप एक ग्लोबल git इग्नोर नियम सेट कर सकते हैं जो आपके सिस्टम पर हर रिपॉजिटरी के लिए स्वचालित रूप से gitignore नियम सेट कर देगा। यह फाइल आमतौर पर आपके ऑपरेटिंग सिस्टम के होम डायरेक्टरी में रखी जाती है, जैसे /home/your_username या /Users/your_username।
आइए एक ग्लोबल .gitignore फाइल बनाएं:
यह कमांड हमारे होम डायरेक्टरी में एक खाली .gitignore फाइल बनाता है। इस फाइल को खोलें और उन सभी नियमों को जोड़ें जिन्हें आप अपने सिस्टम पर सभी Git रिपॉजिटरी के लिए सेट करना चाहते हैं।
एक बार जब आप अपनी gitignore फाइल को कॉन्फिगर कर लेते हैं, तो आप core.excludesFile प्रॉपर्टी का उपयोग करके इसके नियमों को लागू कर सकते हैं:
git config --global core.excludesFile ~/.gitignore
यह कमांड ~/.gitignore फाइल में नियमों को कंप्यूटर पर सभी Git रिपॉजिटरी पर लागू करने के लिए सेट करता है।
ग्लोबल git इग्नोर नियम परिभाषित करते समय सावधान रहें। ऐसा इसलिए है क्योंकि ग्लोबल .gitignore में नियम डिफ़ॉल्ट रूप से सभी प्रोजेक्ट्स पर सेट होते हैं।
एक ग्लोबल .gitignore फाइल .env जैसी सामान्य फाइलों के लिए सबसे अच्छी है जिन्हें आप लगभग कभी भी git रिपॉजिटरी में कमिट नहीं करना चाहेंगे।
कमिट की गई फाइल को कैसे नजरअंदाज करें
आप हमेशा यह अनुमान नहीं लगा सकते कि आप किसी प्रोजेक्ट में किन फाइलों को नजरअंदाज करना चाहेंगे। ऐसा हो सकता है कि आपने पहले किसी फाइल को रिपॉजिटरी में कमिट किया हो लेकिन अब आप इसे नजरअंदाज करना चाहते हैं।
आइए फाइल config.json को नजरअंदाज करें। यह फाइल पहले से ही हमारे रिपॉजिटरी में कमिट है। हमें अपने .gitignore फाइल में एक इग्नोर नियम जोड़कर शुरू करना चाहिए:
echo config.json >> .gitignore
यह कमांड config.json को हमारी .gitignore फाइल के अंत में जोड़ता है। अब हमें फाइल को अपने रिपॉजिटरी से हटाना होगा। हम इसे git rm --cached कमांड का उपयोग करके कर सकते हैं। यह कमांड केवल फाइल को आपके रिपॉजिटरी से हटाएगा। यह आपके कंप्यूटर पर एक लोकल फाइल के रूप में रहेगा।
git rm --cached config.json
अगली बार जब हम कमिट बनाएंगे, तो config.json फाइल नजरअंदाज की जाएगी।
नजरअंदाज की गई फाइल को कैसे कमिट करें
आप .gitignore फाइल में नजरअंदाज की गई फाइल को कमिट कर सकते हैं।
यह उपयोगी हो सकता है यदि आप डिफ़ॉल्ट कॉन्फिग फाइल बना रहे हैं जिन्हें आप किसी रिपॉजिटरी में कमिट करना चाहते हैं जिसे अन्यथा नजरअंदाज किया जाएगा। आप फाइल को स्टेजिंग एरिया में जोड़ते समय -f फ्लैग का उपयोग करके नजरअंदाज की गई फाइल को कमिट कर सकते हैं:
git add -f config.json git commit -m "feat: Create default config file"
यह कोड config.json फाइल को स्टेजिंग एरिया में जोड़ता है। फिर यह स्टेजिंग एरिया की सामग्री के आधार पर एक कमिट बनाता है। आप हमारे git add ट्यूटोरियल में git add के बारे में अधिक पढ़ सकते हैं। आप हमारे git कमिट ट्यूटोरियल में git कमिट कमांड के बारे में पढ़ सकते हैं।
निष्कर्ष
.gitignore फाइल आपको Git रिपॉजिटरी में फाइलों को नजरअंदाज करने की अनुमति देती है।
आप अपने प्रोजेक्ट की स्थानीय प्रति में सभी फाइलों को अपने कमिट में शामिल नहीं करना चाह सकते हैं। उदाहरण के लिए, आप कंपाइल्ड कोड, या सिस्टम लॉग, या कॉन्फिग फाइलों को कमिट नहीं करना चाह सकते हैं। फाइलों को नजरअंदाज करने के लिए, आप .gitignore में निर्दिष्ट कर सकते हैं कि आप किन्हें नजरअंदाज करना चाहते हैं।
एक प्रोजेक्ट में कई .gitignore फाइलें हो सकती हैं। आप git add कमांड का उपयोग करते समय -f फ्लैग का उपयोग करके .gitignore नियम को ओवरराइड कर सकते हैं।
अब आप .gitignore फाइल का उपयोग एक विशेषज्ञ की तरह करने के लिए तैयार हैं!