Git 2.23 (Q3 2019): यदि आप अपने नवीनतम संशोधन में सबमॉडल्स को क्लोन और अपडेट करना चाहते हैं :
git clone --recurse-submodules --remote-submodules
यदि आप उन्हें उनके दर्ज SHA1 पर क्लोन करना चाहते हैं:
git clone --recurse-submodules
निचे देखो।
मूल उत्तर 2010
जैसा कि जोशी ने टिप्पणियों में उल्लेख किया है, git submoduleअब --recursiveविकल्प का समर्थन करता है (Git1.6.5 और अधिक)।
यदि --recursiveनिर्दिष्ट किया गया है, तो यह कमांड पंजीकृत सबमॉड्यूल्स में फिर से आ जाएगी, और किसी भी नेस्टेड सबमॉड्यूल्स को अपडेट करेगा।
इनिट भाग के लिए पुनरावर्ती रूप से गिट सबमॉडल्स के साथ कार्य करना देखें । अधिक के लिए समझाया गया
देखें ।git submodule
संस्करण 1.6.5 git के साथ और बाद में, आप –-recursiveविकल्प के साथ सुपर-प्रोजेक्ट को क्लोन करके स्वचालित रूप से ऐसा कर सकते हैं :
git clone --recursive git://github.com/mysociety/whatdotheyknow.git
अपडेट २०१६, git २.: के साथ: " git submodules का उपयोग करके गति को कैसे तेज / समानांतर करें git clone --recursive? " देखें।
आप समानांतर में कई थ्रेड्स का उपयोग करके सबमॉड्यूल लाने की पहल कर सकते हैं।
उदाहरण के लिए:
git fetch --recurse-submodules -j2
इससे भी बेहतर, Git 2.23 (Q3 2019) के साथ, आप एक कमांड में उनकी ट्रैकिंग शाखा के लिए सबमॉड्यूल को क्लोन और चेकआउट कर सकते हैं!
देखें प्रतिबद्ध 4c69101 (19 मई 2019) द्वारा बेन Avison ( bavison) ।
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध 9,476,094 , 17 जून 2019)
clone: --remote-submodulesझंडा जोड़ें
जब उपयोग git clone --recurse-submodulesकरने से पहले किसी भी उपयोग के मामले के लिए --remoteअंतर्निहित git submodule updateकमांड पर एक स्विच पास करने का कोई तरीका नहीं था, जहां आप चाहते हैं कि सुपरप्रोजेक्ट में दर्ज SHA-1 के बजाय सबमॉड्यूल को उनके रिमोट-ट्रैकिंग शाखा पर चेक आउट किया जाए।
यह पैच इस स्थिति को ठीक करता है।
यह वास्तव में इस आधार पर भी गुजरता --no-fetchहै git submodule updateकि वे सबमॉड्यूल को केवल क्लोन किया गया है, इसलिए रिमोट से फिर से लाने से चीजें धीमी हो जाती हैं।
इसका मत:
--[no-]remote-submodules:
सभी सबमॉड्यूल्स जो क्लोन किए गए हैं, सुपरप्रोजेक्ट के रिकॉर्ड किए गए SHA-1 के बजाय सबमॉड्यूल को अपडेट करने के लिए सबमॉड्यूल की रिमोट-ट्रैकिंग शाखा की स्थिति का उपयोग करेंगे। पास --remoteकरने के बराबर git submodule update।
git clone --recurse-submodules --remote-submodules(Q3 2019 Git 2.23): यह क्लोन करेगा और सबमॉड्यूल को एक कमांड में अपडेट करेगा । देखें नीचे मेरी संपादित जवाब ।