आपके पूरे स्टैक के लिए एक संपूर्ण .gitignore
यह .gitignore जेनरेटर प्रोग्रामिंग भाषाओं, फ़्रेमवर्क, बिल्ड टूल, कोड एडिटर और ऑपरेटिंग सिस्टम के तैयार टेम्पलेट्स को एक ही फ़ाइल में जोड़ता है। Node और Next.js चुनें, macOS, Windows और VS Code जोड़ें, और आपको प्रत्येक के लिए स्पष्ट सेक्शन, बिना डुप्लिकेट नियमों और अपनी खुद की लाइनों के लिए जगह वाला एक .gitignore मिलता है। ये टेम्पलेट आधिकारिक github/gitignore संग्रह से तैयार किए गए हैं और सब कुछ सीधे आपके ब्राउज़र में असेंबल होता है।
.gitignore फ़ाइल कैसे जनरेट करें
- 1खोज बॉक्स में कोई भाषा, फ़्रेमवर्क, एडिटर या OS टाइप करें — जैसे
python,unity,jetbrains— और जोड़ने के लिए चिप पर क्लिक करें। पहला परिणाम जोड़ने के लिए Enter दबाएं। - 2आपके प्रोजेक्ट के लिए जितने टेम्पलेट आवश्यक हों उन्हें जोड़ें। एक सामान्य वेब प्रोजेक्ट में आमतौर पर एक भाषा, एक फ़्रेमवर्क, आपका एडिटर और आपका ऑपरेटिंग सिस्टम शामिल होता है।
- 3कस्टम लाइनें में प्रोजेक्ट-विशिष्ट पाथ जोड़ें, जैसे
/uploads/या*.sqlite। - 4परिणाम को कॉपी करें या
.gitignoreके रूप में डाउनलोड करें और इसे अपने Git रिपॉजिटरी के रूट में रखें।
.gitignore फ़ाइल का कार्य
.gitignore उन फ़ाइलों को सूचीबद्ध करता है जिन्हें Git को ट्रैक नहीं करना चाहिए: निर्भरताएं जिन्हें पैकेज मैनेजर दोबारा इंस्टॉल कर सकता है (node_modules/, vendor/), बिल्ड आउटपुट (dist/, target/), कैश, लॉग, एडिटर सेटिंग्स और .env जैसे गोपनीय क्रेडेंशियल्स। इन्हें बाहर रखने से रिपॉजिटरी का आकार छोटा रहता है, diffs पढ़ने में आसान होते हैं और डेटा लीक का खतरा कम होता है।
यह फ़ाइल केवल उन फ़ाइलों को प्रभावित करती है जो पहले से ट्रैक नहीं हैं (untracked)। यदि कोई फ़ाइल पहले ही कमिट हो चुकी है, तो उसे .gitignore में जोड़ने से वह नहीं हटेगी; स्थानीय प्रति को हटाए बिना उसे ट्रैक करना बंद करने के लिए git rm --cached <file> (या फ़ोल्डर के लिए git rm -r --cached <dir>) चलाएं और कमिट करें।
.gitignore पैटर्न सिंटैक्स
नियमों का क्रम महत्वपूर्ण है: अंतिम मिलान वाला पैटर्न जीतता है, यही कारण है कि !.vscode/settings.json जैसे अपवाद नियम व्यापक .vscode/* के बाद आते हैं।
- *.log
- बिना स्लैश वाला पैटर्न किसी भी गहराई में मेल खाता है: रिपॉजिटरी में प्रत्येक .log फ़ाइल को अनदेखा करता है।
- /build
- शुरुआती स्लैश पैटर्न को .gitignore वाले डायरेक्टरी में एंकर करता है, जिससे केवल रूट का build फ़ोल्डर अनदेखा होता है।
- dist/
- अंतिम स्लैश केवल डायरेक्टरी से मेल खाता है, dist नाम की साधारण फ़ाइल से नहीं।
- **/temp
- दो तारांकन किसी भी स्तर के फ़ोल्डर से मेल खाते हैं: रूट या किसी भी सब-डायरेक्टरी में temp फ़ोल्डर।
- !.env.example
- शुरुआती विस्मयादिबोधक चिह्न किसी पिछले नियम द्वारा बाहर की गई फ़ाइल को फिर से शामिल करता है। यदि मूल फ़ोल्डर अनदेखा है तो यह काम नहीं करता।
- # टिप्पणी
- # से शुरू होने वाली लाइनें टिप्पणियां हैं; खाली लाइनें सेपरेटर के रूप में काम करती हैं। शाब्दिक मिलान के लिए # या ! से पहले बैकस्लैश लगाएं।
टेम्पलेट्स को कैसे संयोजित किया जाता है
प्रत्येक टेम्पलेट ### नाम ### हेडिंग वाला एक सेक्शन बन जाता है। डुप्लिकेट पैटर्न हटाएं विकल्प चालू होने पर, जो पैटर्न पिछले सेक्शन में आ चुके हैं उन्हें बाद के सेक्शन से छोड़ दिया जाता है, और खाली टिप्पणी ब्लॉक को भी हटा दिया जाता है। अपवाद वाले पैटर्न अपनी जगह पर बने रहते हैं ताकि उनका तार्किक अर्थ न बदले।
बिल्ड टूल और फ़्रेमवर्क के नियम अक्सर एक जैसे होते हैं — Node, Next.js और Vite सभी node_modules और लॉग को अनदेखा करते हैं — इसलिए डुप्लिकेट हटाने से फ़ाइल का आकार 20% या अधिक कम हो जाता है।
प्रोजेक्ट, ग्लोबल और लोकल इग्नोर फ़ाइलें
प्रोजेक्ट की .gitignore फ़ाइल को कमिट करें ताकि टीम के सभी सदस्य इसे साझा कर सकें, और इसमें केवल वही फ़ाइलें रखें जो प्रोजेक्ट स्वयं बनाता है। केवल आपके कंप्यूटर द्वारा बनाई गई फ़ाइलें — .DS_Store, Thumbs.db, एडिटर सेटिंग्स — git config --global core.excludesFile ~/.gitignore_global के ज़रिए ग्लोबल फ़ाइल में रखी जानी चाहिए। किसी एक रिपॉजिटरी में अपने व्यक्तिगत नियमों के लिए .git/info/exclude का उपयोग करें जो कभी कमिट नहीं होती।
एप्लिकेशन के लिए लॉक फ़ाइलें जैसे package-lock.json, poetry.lock और Cargo.lock को कमिट किया जाना चाहिए, अनदेखा नहीं: वे सभी वातावरणों में समान इंस्टॉलेशन सुनिश्चित करती हैं। कोई फ़ाइल किस नियम से अनदेखी हो रही है यह जांचने के लिए git check-ignore -v path/to/file चलाएं।
गोपनीय डेटा को Git से दूर रखें
Env और सीक्रेट्स टेम्पलेट .env फ़ाइलों, प्राइवेट कीज़ और सामान्य क्रेडेंशियल फ़ाइलों को अनदेखा करता है, जबकि दस्तावेज़ीकरण के लिए .env.example को बनाए रखता है। किसी सीक्रेट को अनदेखा करना केवल भविष्य के कमिट को रोकता है: यदि कोई की पहले ही पुश हो चुकी है, तो उसे तुरंत बदलें क्योंकि वह इतिहास में मौजूद रहती है। संबंधित टूल: फ़ाइल अनुमतियों के लिए chmod कैलकुलेटर और वेब क्रॉलर नियंत्रण के लिए robots.txt जेनरेटर।
अक्सर पूछे जाने वाले सवाल
- मुझे .gitignore फ़ाइल कहाँ रखनी चाहिए?
- अपने रिपॉजिटरी के रूट में, .git फ़ोल्डर के ठीक बगल में। आप सब-डायरेक्टरी में भी .gitignore फ़ाइलें जोड़ सकते हैं; उनके नियम उस डायरेक्टरी के अनुसार लागू होते हैं।
- .gitignore में जोड़ने के बाद भी Git फ़ाइल को क्यों ट्रैक कर रहा है?
- .gitignore केवल अनट्रैक्ड फ़ाइलों पर लागू होता है। git rm --cached <file> (या फ़ोल्डर के लिए git rm -r --cached <folder>) चलाएं और कमिट करें; Git आपकी स्थानीय फ़ाइल को हटाए बिना उसे ट्रैक करना बंद कर देगा।
- क्या मुझे package-lock.json या yarn.lock को अनदेखा करना चाहिए?
- नहीं, एप्लिकेशन के लिए नहीं। लॉक फ़ाइलें सटीक पैकेज संस्करण तय करती हैं ताकि प्रत्येक इंस्टॉलेशन समान हो, और इन्हें कमिट किया जाना चाहिए।
- क्या .vscode या .idea को .gitignore में होना चाहिए?
- आमतौर पर केवल व्यक्तिगत सेटिंग्स। VS Code टेम्पलेट .vscode/* को अनदेखा करता है लेकिन साझा settings.json और launch.json को बनाए रखता है; JetBrains टेम्पलेट पूरे .idea फ़ोल्डर को अनदेखा करता है।
- मैं सभी प्रोजेक्ट्स में .DS_Store को कैसे अनदेखा करूँ?
- ग्लोबल इग्नोर फ़ाइल बनाएं: .DS_Store वाली ~/.gitignore_global बनाएं और git config --global core.excludesFile ~/.gitignore_global चलाएं।
- किसी फ़ोल्डर में एक फ़ाइल को छोड़कर बाकी सभी को कैसे अनदेखा करें?
- फ़ोल्डर की सामग्री को अनदेखा करें, फ़ोल्डर को नहीं, और फिर उस फ़ाइल को शामिल करें: folder/* के बाद !folder/keep.txt। folder/ लिखने से पूरा फ़ोल्डर बाहर हो जाता है और अंदर की कोई फ़ाइल शामिल नहीं हो सकती।
- ये टेम्पलेट्स कहाँ से आते हैं?
- ये GitHub के आधिकारिक github/gitignore रिपॉजिटरी (CC0 लाइसेंस) से संकलित किए गए हैं, जिसमें पुराने अप्रचलित नियमों को हटा दिया गया है। अपने प्रोजेक्ट की आवश्यकताओं के अनुसार परिणाम की समीक्षा करें।