पहला रिपॉजिटरी: git init, git add, git commit और इंडेक्स का जादू
हम अपनी पहली रिपॉजिटरी बनाते हैं और तुरंत उस अवधारणा का सामना करते हैं जिसे कई लोग वर्षों तक नहीं समझ पाते — स्टेजिंग एरिया (इंडेक्स)। हम समझेंगे कि वर्किंग डायरेक्टरी और इतिहास के बीच यह 'मध्यवर्ती परत' क्यों आवश्यक है, और उदाहरणों के साथ देखेंगे कि कैसे add → commit की दो-चरणीय प्रणाली कमिट को सार्थक बनाती है, न कि यादृच्छिक।
- आप समझ जाएंगे कि स्टेजिंग एरिया क्यों मौजूद है और यह कैसे परमाणु, सार्थक कमिट बनाने में मदद करता है।
- आप एक रिपॉजिटरी बना पाएंगे, फ़ाइलों को इंडेक्स में जोड़ पाएंगे, और सही संदेश के साथ पहला कमिट कर पाएंगे।
- आप git add -p के माध्यम से किसी फ़ाइल के केवल कुछ हिस्सों को ही कमिट में जोड़ना सीख जाएंगे।
पाठ की शुरुआत
पहली रिपॉजिटरी बनाना
- git init एक छिपा हुआ फ़ोल्डर .git बनाता है
- .git में पूरा बदलावों का इतिहास स्टोर होता है
- किसी भी फ़ोल्डर में रिपॉजिटरी बनाई जा सकती है
- मौजूदा फ़ाइलें अनट्रैक्ड हो जाती हैं
- सादृश्य: एक नई नोटबुक में डायरी शुरू करना
कल्पना कीजिए कि आपका प्रोजेक्ट एक किताब है, और रिपॉजिटरी उसका ड्राफ्ट है, जहाँ हर सुधार स्टोर होता है। जब आप git init चलाते हैं, तो आपके फ़ोल्डर में एक छिपी हुई डायरेक्टरी .git बनती है – यही रिपॉजिटरी है। इसके अंदर Git सभी बदलावों का इतिहास, मेटाडेटा और सेटिंग्स स्टोर करेगा। यह समझना ज़रूरी है: रिपॉजिटरी कभी भी बनाई जा सकती है, भले ही फ़ोल्डर में पहले से फ़ाइलें हों। वे बस अनट्रैक्ड हो जाएँगी, और आप बाद में उन्हें जोड़ सकते हैं। यह एक नई डायरी शुरू करने जैसा है – आप एक कॉपी लाते हैं, लेकिन अभी तय नहीं किया कि उसमें क्या लिखेंगे।
.git के अंदर झाँकते हैं
- objects: फ़ाइलों और कमिट का कंप्रेस्ड डेटा
- refs: ब्रांच और टैग के पॉइंटर्स, बुकमार्क की तरह
- HEAD: इतिहास में वर्तमान स्थिति
- config: रिपॉजिटरी की सेटिंग्स
- hooks: ऑटोमेशन के लिए स्क्रिप्ट्स
चलिए .git फ़ोल्डर के अंदर झाँकते हैं। यहाँ Git का सारा जादू है। objects डायरेक्टरी में आपकी सभी फ़ाइलें और कमिट कंप्रेस्ड रूप में स्टोर होते हैं। refs फ़ोल्डर में ब्रांच और टैग के पॉइंटर्स होते हैं – जैसे किताब में बुकमार्क। HEAD फ़ाइल दिखाती है कि आप इतिहास में कहाँ हैं। config में इस रिपॉजिटरी की सेटिंग्स स्टोर होती हैं। hooks भी होते हैं – ये स्क्रिप्ट्स हैं जो कुछ घटनाओं पर ऑटोमैटिक चलती हैं। यह सब Git इनिशियलाइज़ेशन पर अपने आप बना लेता है। आपको शायद ही कभी यहाँ देखने की ज़रूरत पड़े, लेकिन संरचना समझना मुश्किल स्थितियों में मदद करेगा।
अभ्यास: रिपॉजिटरी बनाना
- प्रोजेक्ट फ़ोल्डर में टर्मिनल खोलें
- git init चलाएँ
- ls -la से .git की जाँच करें
- विंडोज़: dir /ah का उपयोग करें
- हो गया! फ़ोल्डर अब वर्जन कंट्रोल में है
अपने प्रोजेक्ट के फ़ोल्डर में टर्मिनल खोलें। git init कमांड टाइप करें और एंटर दबाएँ। आपको खाली रिपॉजिटरी इनिशियलाइज़ होने का संदेश दिखेगा। यह सुनिश्चित करने के लिए कि सब कुछ ठीक हुआ, ls -la चलाएँ – आपको छिपा हुआ .git फ़ोल्डर दिखना चाहिए। अगर विंडोज़ पर काम कर रहे हैं, तो dir /ah का उपयोग करें। बधाई हो, अब आपका फ़ोल्डर वर्जन कंट्रोल में है! अब से आप जो भी बदलाव करेंगे, Git उन्हें ट्रैक कर सकेगा। अब जब रिपॉजिटरी बन चुकी है, तो समझते हैं कि Git फ़ाइलों को कैसे वर्गीकृत करता है – यह इसकी कार्यप्रणाली को समझने की कुंजी है।
# प्रोजेक्ट फ़ोल्डर बनाएँ और उसमें जाएँ
mkdir my_first_repo
cd my_first_repo
# रिपॉजिटरी को इनिशियलाइज़ करें
git init
# .git के निर्माण की जाँच करें
ls -la | grep .git
पूरा पाठ सदस्यता के साथ उपलब्ध है
पूर्ण संस्करण में 20 और स्लाइड्स हैं।
वीडियो, सभी स्लाइड्स, नोट्स, टेस्ट, AI ट्यूटर और इंटरव्यू लॉगिन करने और सदस्यता लेने के बाद खुलेंगे।
लॉग इन या रजिस्टर करें सदस्यता लेंपाठ की सामग्री सूची
- पहली रिपॉजिटरी बनाना
- .git के अंदर झाँकते हैं
- अभ्यास: रिपॉजिटरी बनाना
- फ़ाइलों की तीन अवस्थाएँ: यह क्यों ज़रूरी है
- कार्यशील निर्देशिका: जहाँ आप रचना करते हैं
- इंडेक्स: बदलावों को अर्थपूर्ण टुकड़ों में इकट्ठा करना
- कमिट: इतिहास को हमेशा के लिए सहेजें
- Git इंडेक्स: कमिट के लिए मध्यवर्ती क्षेत्र
- इंडेक्स में विशिष्ट फ़ाइल जोड़ना
- सभी परिवर्तित फ़ाइलें जोड़ना
- Git में कमिट क्या है
- पहला कमिट बनाना
- अच्छा कमिट संदेश कैसे लिखें
- मिश्रित परिवर्तनों की समस्या
- Git add -p क्रियान्वयन में
- पैच कैसे पढ़ें
- बिना add के कमिट क्यों काम नहीं करता
- एक काम, एक कमिट
- एक साल बाद भी समझ में आने वाले कमिट संदेश
- पहला रिपॉजिटरी बनाना
- इंडेक्स: कोड और कमिट के बीच
- सार्थक कमिट बनाना
- आपका पहला कमिट: आगे क्या?
इस व्याख्यान से जुड़े लेख
- git add और git commit: बदलाव सही तरीके से कैसे सेव करें
- Git कमांड: रोज़ के उपयोग के उदाहरणों वाली चीट-शीट
- Git रिपॉज़िटरी: git init से बनाएँ और remote कैसे जोड़ें
- .gitignore फ़ाइल: Git से फ़ाइलें कैसे बाहर रखें और जोड़ी हुई फ़ाइलें कैसे हटाएँ
- Git और GitHub: अंतर क्या है और दोनों कैसे जुड़े हैं
इस कोर्स के सभी पाठ
- परिचय: शुरुआत से आत्मविश्वासी डेवलपर तक Git
- गिट की आवश्यकता क्यों है — और इसके बिना नौकरी क्यों नहीं मिलती
- Git की स्थापना और प्रारंभिक सेटअप: पहली बार चलाने की तैयारी
- पहला रिपॉजिटरी: git init, git add, git commit और इंडेक्स का जादू
- इतिहास पढ़ना: log, diff, show और पिछले बदलावों में नेविगेशन
- शाखाएँ: आपके कोड की समानांतर दुनिया
- गलतियाँ सुधारना: restore, reset, revert — सही और खतरनाक तरीके
- GitHub और दूरस्थ भंडार: आपका कोड क्लाउड में
- टीम वर्क: फ़ोर्क, फ़ीचर ब्रांच और पुल रिक्वेस्ट
- मर्ज संघर्ष: घबराएं नहीं — समझें और हल करें
- वास्तविक टीमों में Git प्रक्रियाएँ: कौन सा वर्कफ़्लो चुनें
- उन्नत उपकरण: rebase, stash, cherry-pick और टैग
- अंतिम प्रोजेक्ट: वास्तविक टीम डेवलपमेंट का अनुकरण