यदि मैं आपको सही समझता हूं तो मैं ग्रहण परियोजनाओं और कार्यक्षेत्रों के लिए अक्सर यही कर रहा हूं। चलो इस संरचना के साथ शुरू करते हैं:
$ find .
.
./projekt.txt
./sub1
./sub1/sub1.txt
./sub2
./sub2/sub2.txt
पहले submodules और मास्टर प्रारंभ:
$ cd sub1
$ git init
$ git add *
$ git commit -m "init sub1"
$ cd ../sub2
$ git init
$ git add *
$ git commit -m "init sub2"
$ cd ..
$ git init
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# projekt.txt
# sub1/
# sub2/
बजाय नियमित फ़ोल्डरों की submodules के रूप में उन फ़ोल्डर जोड़ने के लिए, बस निम्न आदेश करते हैं, और ./sub
की तरह संबंधित पथ का उपयोग बस sub
$ git submodule add ./sub1
$ git submodule add ./sub2
अब के बजाय यह
की तरह दिखना चाहिए
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitmodules
# new file: sub1
# new file: sub2
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# projekt.txt
अंत में मूल फ़ोल्डर पर git add *
और git commit -m "init parent"
करें और वहां आप हैं!
यदि अब आप अपने किसी भी पनडुब्बियों में एक फ़ाइल बदलते हैं, तो आपको अपने पब्लिक रिपो को क्लोन करते समय अपने सबमिड्यूल के नवीनतम संस्करण प्राप्त करने के लिए पहले और फिर पैरेंट रिपोजिटरी को सबमिड्यूल करना होगा।
स्रोत
2013-10-27 14:24:38
कैसे के बारे में 'Git init। mkdir ए; सीडी ए; गिट इनिट। सीडी ..; गिट सबमिशन जोड़ें ./a ए 'या यह एक बुरा विचार है? – manuels
@ मैनुअल जो मैंने अभी अपने उत्तर में जोड़ा है, लेकिन मुद्दा यह है कि: आपको एक रेपो बनाने के लिए एक रिपोर्टर के रूप में माता-पिता रेपो में संदर्भित करने में सक्षम होना चाहिए। हालांकि, मुझे नहीं लगता कि एक बार आपके माता-पिता रेपो को गिटहब पर धक्का दिया जाता है और दूसरे उपयोगकर्ता द्वारा क्लोन किया जाता है। – VonC
तो यह ठीक है अगर मैं सुपर-रेपो * की निर्देशिका में रेपो * बना देता हूं और * इस डीआईआर को सबमिशन * के रूप में उपयोग करता हूं? – manuels