नोट: यह 2009 से है और तब अच्छा रहा होगा, लेकिन अब बेहतर विकल्प हैं।
हम इसका उपयोग करते हैं। इसे कहा जाता है git-pup
:
#!/bin/bash
# Exists to fully update the git repo that you are sitting in...
git pull && git submodule init && git submodule update && git submodule status
बस इसे एक उपयुक्त बिन निर्देशिका (/ usr / स्थानीय / बिन) में डालें। अगर विंडोज पर, आपको इसे काम करने के लिए सिंटैक्स को संशोधित करना पड़ सकता है :)
अपडेट करें:
मूल लेखक द्वारा टिप्पणी के जवाब में सभी सबमॉडल्स के सभी हेड्स में खींचने के बारे में - यह एक अच्छा सवाल है।
मुझे पूरा यकीन है कि git
आंतरिक रूप से इसके लिए कोई आदेश नहीं है। ऐसा करने के लिए, आपको यह पहचानने की आवश्यकता होगी कि HEAD वास्तव में एक सबमॉड्यूल के लिए क्या है। यह उतना ही सरल हो सकता है जितना यह कहा जा सकता है कि यह master
तारीख शाखा, आदि ...
इसके बाद, एक सरल स्क्रिप्ट बनाएं जो निम्न कार्य करता है:
git submodule status
"संशोधित" रिपॉजिटरी के लिए जाँच करें । आउटपुट लाइनों का पहला वर्ण यह इंगित करता है। यदि कोई सब-रेपो संशोधित किया गया है, तो आप आगे बढ़ना नहीं चाह सकते हैं।
- सूचीबद्ध प्रत्येक रेपो के लिए, यह निर्देशिका और सीडी में सीडी है
git checkout master && git pull
। त्रुटियों के लिए जाँच करें।
- अंत में, मेरा सुझाव है कि आप सबमॉडल्स की वर्तमान स्थिति को इंगित करने के लिए उपयोगकर्ता को एक डिस्प्ले प्रिंट करें - शायद उन्हें सभी को जोड़ने और प्रतिबद्ध करने के लिए संकेत दें?
मैं यह उल्लेख करना चाहूंगा कि यह शैली वास्तव में नहीं है जो गिट सबमॉडल्स के लिए डिज़ाइन की गई थी। आमतौर पर, आप "लाइब्रेरीएक्स" को "2.32" संस्करण में कहना चाहते हैं और जब तक मैं इसे "अपग्रेड" करने के लिए नहीं कहूंगा, तब तक यह रहेगा।
यही है, एक अर्थ में, आप वर्णित स्क्रिप्ट के साथ क्या कर रहे हैं, लेकिन बस अधिक स्वचालित रूप से। देखभाल की आवश्यकता है!
अपडेट 2:
यदि आप एक विंडोज़ प्लेटफ़ॉर्म पर हैं, तो आप स्क्रिप्ट को लागू करने के लिए पायथन का उपयोग करना चाह सकते हैं क्योंकि यह इन क्षेत्रों में बहुत सक्षम है। यदि आप यूनिक्स / लाइनक्स पर हैं, तो मैं सिर्फ बैश स्क्रिप्ट का सुझाव देता हूं।
किसी भी स्पष्टीकरण की आवश्यकता है? बस एक टिप्पणी पोस्ट करें।