आप गिट के submodule समर्थन में देखना चाहते हैं। एक सबमिशन आपको एक गिट भंडार को अन्य गिट भंडार के अंदर एम्बेड करने देता है। इस तरह की चीज़ों के लिए alternative solutions हैं, लेकिन मैंने उन्हें स्वयं नहीं उपयोग किया है।
एक उदाहरण इस प्रकार दिखाई देंगे:
$ git clone git://github.com/username/project.git
$ cd project
$ git submodule add git://github.com/username/framework.git framework
$ git commit -m "added framework submodule"
आप submodules के साथ एक भंडार क्लोनिंग रहे हैं, तो आप --recursive
विकल्प का उपयोग करने की जरूरत है:
$ git clone --recursive git://<repository-with-submodules>.git
या वैकल्पिक रूप से, आप नियमित रूप से क्लोन कर सकते हैं और फिर चलाएं:
$ git submodule init
$ git submodule update
लिंक किए गए दस्तावेज़ को पढ़ें (और git submodule --help
) अधिक जानकारी के लिए।
परिवर्तन submodule के लिए बना रहे हैं, तो आप उन्हें में इस तरह लाने:
# first update the submodule just like any other git repository
$ cd project/framework
$ git pull
# now you have to record the new commit in the parent repository
$ cd ..
$ git commit -m "updated framework submodule"
अंतिम चरण आवश्यक है, क्योंकि Git (विशिष्ट एक दिया submodule के साथ जुड़े प्रतिबद्ध का रिकॉर्ड रखता है ताकि जब किसी को भी माता-पिता को क्लोन करते हैं, उन्हें अपने सबसे अद्यतित संशोधन के बजाय, सबमिशन के उस संस्करण को प्राप्त होगा, जो टूटने वाले परिवर्तनों से गुजर सकता है जो इसे माता-पिता के भंडार के साथ काम करने से रोक देगा)। इसलिए यदि आप सबमिशन को अपडेट करते हैं, तो आपको माता-पिता में नई प्रतिबद्धता रिकॉर्ड करने की आवश्यकता है।
यदि आप framework
सबमिशन के भीतर परिवर्तन करते हैं, तो आप फिर से git push
जैसे किसी भी अन्य भंडार के साथ करेंगे। आपको पैरेंट मॉड्यूल में नया संशोधन करना होगा।
बिल्कुल सही, इसलिए जब फ्रेमवर्क में परिवर्तन किए जाते हैं, तो अब मैं उन्हें प्रोजेक्ट में कैसे खींचूं कि यह एक मॉड्यूल है? साथ ही, अगर मैं प्रोजेक्ट के बजाय फ्रेमवर्क में बदलाव करता हूं, तो मैं उन्हें वापस फ्रेमवर्क गिट रेपो में कैसे दबा सकता हूं? – Justin
मैंने अपना जवाब अपडेट कर दिया है। – larsks
एक छोटा सा नोट। सबमिशन हेड अलग है इसलिए आपको सबमिशन में बदलाव करने के बारे में सावधान रहना होगा। एक शाखा बनाएं (या शाखा में स्विच करें), परिवर्तन करें, प्रतिबद्ध करें और फिर धक्का दें। – GoZoner