ตัวอย่างบทเรียน

शाखाएँ: आपके कोड की समानांतर दुनिया

शाखाएँ Git का दिल हैं, और यहीं पर अधिकांश शुरुआती लोग डरने लगते हैं। हम शाखाओं को सरल बनाएँगे: दिखाएँगे कि शाखा एक सूचक मात्र है, फ़ाइलों की प्रतिलिपि नहीं। हम जानेंगे कि शाखाएँ कैसे बनाएँ, उनके बीच स्विच करें और परिवर्तनों को मर्ज करें, साथ ही लाइव उदाहरणों के माध्यम से फास्ट-फॉरवर्ड और त्रिपक्षीय मर्ज के बीच अंतर देखेंगे।

शाखा HEAD मर्ज
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • आप समझ जाएँगे कि शाखा एक हल्का-फुल्का सूचक है, और किसी भी कारण से शाखाएँ बनाने से नहीं डरेंगे।
  • आप शाखाएँ बना सकेंगे, उनके बीच स्विच कर सकेंगे और मर्ज कमांड से परिवर्तनों को मिला सकेंगे।
  • आप फास्ट-फॉरवर्ड और त्रिपक्षीय मर्ज के बीच अंतर कर पाएँगे और समझ पाएँगे कि कब कौन सा परिदृश्य लागू होता है।

จุดเริ่มต้นของบทเรียน

शाखाओं में फ़ाइलों की प्रतिलिपि बनाने का मिथक

  • शाखा फाइलों की प्रतिलिपि नहीं, बल्कि एक हल्का सूचक है
  • शाखा बनाने में सेकंड का अंश लगता है
  • भंडारण पर शून्य अतिरिक्त लागत
  • सभी शाखाएं एक ही फाइलों के साथ काम करती हैं

कल्पना कीजिए कि हर बार जब आप एक शाखा बनाते हैं तो आपका पूरा प्रोजेक्ट कॉपी हो जाता है — बड़े रिपॉजिटरी के लिए यह एक बुरा सपना होगा! सौभाग्य से, Git बहुत समझदारी से काम करता है। शाखा केवल इतिहास में एक विशेष कमिट पर एक सूचक है। फाइलों का कोई दोहराव नहीं होता, जिससे शाखा संचालन तुरंत हो जाता है। यह आपके कोड के समय में विभिन्न बिंदुओं के बीच स्विच करने जैसा है, न कि प्रत्येक परिवर्तन के लिए समानांतर ब्रह्मांड बनाना।

शाखा का आंतरिक ढांचा

  • शाखा = कमिट हैश वाली एक टेक्स्ट फ़ाइल
  • .git/refs/heads/ में संग्रहीत
  • आकार: ठीक 40 अक्षर
  • नई शाखा = नई फ़ाइल जिसमें हैश होता है

आइए Git के हुड के नीचे देखें। प्रत्येक शाखा बस एक टेक्स्ट फ़ाइल है जो छिपे हुए फ़ोल्डर .git के अंदर रहती है। इस फ़ाइल में केवल चालीस अक्षर संग्रहीत होते हैं — शाखा में अंतिम कमिट का हैश। जब आप एक नई शाखा बनाते हैं, तो Git वर्तमान कमिट के हैश को एक नई फ़ाइल में लिखता है। पूरी प्रक्रिया में सेकंड का अंश लगता है, भले ही प्रोजेक्ट में हजारों फाइलें हों। अब आप समझ गए होंगे कि शाखाओं के बीच स्विच करना तुरंत क्यों होता है?

किताब की प्रतिलिपि के बजाय बुकमार्क

  • शाखा एक किताब में बुकमार्क की तरह है
  • सामग्री की प्रतिलिपि नहीं बनाती
  • तुरंत स्विचिंग
  • जितनी चाहें उतनी बना सकते हैं

आइए किताब पढ़ने के साथ एक समानता बनाएँ। जब आप किसी पृष्ठ पर बुकमार्क लगाते हैं, तो क्या आप पूरी किताब कॉपी करते हैं? नहीं, आप केवल एक स्थान चिह्नित करते हैं ताकि बाद में वापस आ सकें। Git में शाखा ठीक उसी तरह काम करती है — यह एक हल्का चिह्न है जो आपके कोड की एक विशिष्ट स्थिति को इंगित करता है। आप ऐसे दर्जनों चिह्न बना सकते हैं, और यह डिस्क पर अतिरिक्त स्थान नहीं लेगा। यह हमारी सोच को पूरी तरह से बदल देता है कि हम एक साथ प्रोजेक्ट के विभिन्न संस्करणों के साथ कैसे काम कर सकते हैं।

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 21 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. शाखाओं में फ़ाइलों की प्रतिलिपि बनाने का मिथक
  2. शाखा का आंतरिक ढांचा
  3. किताब की प्रतिलिपि के बजाय बुकमार्क
  4. व्यावहारिक रूप से शाखा बनाना
  5. Git में शाखाएँ कैसे काम करती हैं
  6. नई शाखा बनाना
  7. त्वरित निर्माण और स्विचिंग
  8. ब्रांच स्विच करने पर क्या होता है
  9. जब ब्रांच मर्जिंग बिना विवाद के होती है
  10. fast-forward मर्ज कैसे काम करता है
  11. व्यावहारिक उदाहरण: feature ब्रांच को main में मर्ज करना
  12. जब ब्रांच मर्जिंग स्वचालित रूप से संभव नहीं होती
  13. मर्ज विवाद कैसा दिखता है
  14. विवाद समाधान के चरण
  15. सरल मर्ज हमेशा क्यों काम नहीं करता?
  16. तीन-तरफ़ा विलय कैसे काम करता है
  17. अभ्यास में विलय कमिट बनाना
  18. लंबे इंतज़ार से विलय कैसे मुश्किल होता है
  19. विलय संघर्षों को नज़रअंदाज़ करने का खतरा
  20. संघर्षों को हल करने का सही तरीका
  21. नए कार्य के लिए फ़ीचर शाखा बनाना
  22. एक साथ कई शाखाओं पर काम करना
  23. मुख्य शाखा में बदलावों का विलय
  24. निष्कर्ष: शाखाएँ और विलय

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. परिचय: शुरुआत से आत्मविश्वासी डेवलपर तक Git
  2. गिट की आवश्यकता क्यों है — और इसके बिना नौकरी क्यों नहीं मिलती
  3. Git की स्थापना और प्रारंभिक सेटअप: पहली बार चलाने की तैयारी
  4. पहला रिपॉजिटरी: git init, git add, git commit और इंडेक्स का जादू
  5. इतिहास पढ़ना: log, diff, show और पिछले बदलावों में नेविगेशन
  6. शाखाएँ: आपके कोड की समानांतर दुनिया
  7. गलतियाँ सुधारना: restore, reset, revert — सही और खतरनाक तरीके
  8. GitHub और दूरस्थ भंडार: आपका कोड क्लाउड में
  9. टीम वर्क: फ़ोर्क, फ़ीचर ब्रांच और पुल रिक्वेस्ट
  10. मर्ज संघर्ष: घबराएं नहीं — समझें और हल करें
  11. वास्तविक टीमों में Git प्रक्रियाएँ: कौन सा वर्कफ़्लो चुनें
  12. उन्नत उपकरण: rebase, stash, cherry-pick और टैग
  13. अंतिम प्रोजेक्ट: वास्तविक टीम डेवलपमेंट का अनुकरण