Git Submodules

एडवांस्ड Git

Amanda Crawford-Adamo

Software and Data Engineer

Git Submodule क्या है?

Git Submodule

git submodule
  • एक रिपॉजिटरी के भीतर दूसरी रिपॉजिटरी
  • अलग वर्ज़न कंट्रोल और हिस्ट्री
  • सबमॉड्यूल में बदलाव मुख्य repo को प्रभावित नहीं करते
  • मुख्य repo सबमॉड्यूल के किसी विशेष वर्ज़न को रेफ़र कर सकता है

एक repo जिसमें कई रिपॉजिटरी समाहित हैं, का चित्रण.

एडवांस्ड Git

सबमॉड्यूल जोड़ना

लिंक या पाथ फ़ोल्डर के अंदर डायरेक्टरी से सबमॉड्यूल जोड़ें.

git submodule add <repository link|dir> <path>

$$

उदाहरण

ETL प्रोजेक्ट में libs/validator फ़ोल्डर के तहत data validator लाइब्रेरी जोड़ता है.

git submodule add https://github.com/example/data-validator.git libs/validator
एडवांस्ड Git

सबमॉड्यूल सूचीबद्ध करना

प्रोजेक्ट में सभी सबमॉड्यूल सूचीबद्ध करें

git submodule status

उदाहरण

$ git submodule status
e1f2...7w8x9 data_cleaning_lib
a1b2...q7r8 api_connector
d9e8...t3u2 visualization_toolkit
एडवांस्ड Git

सबमॉड्यूल अपडेट करना

सबमॉड्यूल को नवीनतम बदलावों से अपडेट करें

कई विकल्प हैं:

  1. वे सभी सबमॉड्यूल अपडेट करता है जिनका सोर्स कोड आपके लोकल कंप्यूटर पर है.
    git submodule update --init 
    
  2. वे सभी सबमॉड्यूल अपडेट करता है जिनका सोर्स कोड remote repo पर है.
    git submodule update --init --remote 
    
  3. किसी विशेष सबमॉड्यूल को अपडेट करता है
    git submodule update --init <path_to_submodule>
    
एडवांस्ड Git

सबमॉड्यूल हटाना

सबमॉड्यूल हटाने की प्रक्रिया

  1. सबमॉड्यूल को deinitialize करें.
    git submodule deinit <submodule_name>
    
  2. git repo इंडेक्स से सबमॉड्यूल हटाएँ.
    git rm <path>
    
एडवांस्ड Git

बड़े repo से सबमॉड्यूल निकालना

  1. जिन फ़ाइलों को नए सबमॉड्यूल repo में चाहिए, उन्हें repo के बाहर किसी दूसरे फ़ोल्डर में कॉपी करें.

  2. नए फ़ोल्डर के अंदर, सबमॉड्यूल के लिए नई रिपॉजिटरी बनाएँ:

    git init <new-submodule>
    
  3. मुख्य प्रोजेक्ट से संबंधित फ़ाइलें और हिस्ट्री निकालने के लिए git filter-repo का उपयोग करें:

    git filter-repo --path <extract_path> --invert-paths
    
  4. निकाला गया repo मुख्य प्रोजेक्ट में submodule के रूप में जोड़ें:

    git submodule add <new-submodule_path> <path_to_store_submodule>
    
एडवांस्ड Git

सबमॉड्यूल कब उपयोग करें और बेस्ट प्रैक्टिसेज

Use cases:

  1. बाहरी लाइब्रेरी मैनेज करना
  2. प्रोजेक्ट्स के बीच कोड शेयर करना
  3. dependencies के विशेष वर्ज़न बनाए रखना

Best practices:

  1. सबमॉड्यूल अपडेटेड रखें
  2. relative paths उपयोग करें
  3. टीम के साथ बदलाव साझा करें
एडवांस्ड Git

अभ्यास करते हैं!

एडवांस्ड Git

Preparing Video For Download...