जवाबों:
ऐसा लगता है कि आप गिट सबमॉड्यूल का उपयोग करना चाहते हैं ।
Git इस समस्या को सबमॉड्यूल का उपयोग करके संबोधित करता है। सबमॉड्यूल्स आपको एक Git रिपॉजिटरी को दूसरे Git रिपॉजिटरी के उपनिर्देशिका के रूप में रखने की अनुमति देता है। इससे आप अपने प्रोजेक्ट में एक और रिपॉजिटरी क्लोन कर सकते हैं और अपने कमिट्स को अलग रख सकते हैं।
मैंने हमेशा दो अलग-अलग और अलग-अलग रिपॉजिट बनाए रखने के लिए सीमलिंक का इस्तेमाल किया है।
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
REPO-B
हां, आप वास्तव में वही कर सकते हैं जो आप फ़ाइल पदानुक्रम के साथ पूछ रहे हैं। रेपो-बी स्वतंत्र होगा और रेपो-ए का कोई ज्ञान नहीं होगा। रेपो-ए अपनी फ़ाइलों और रेपो-बी की फाइलों में सभी परिवर्तनों को ट्रैक करेगा।
हालांकि, मैं ऐसा करने की सलाह नहीं दूंगा। हर बार जब आप फाइलें बदलते हैं और रेपो-बी में होते हैं, तो आपको रेपो-ए में प्रतिबद्ध होना पड़ेगा। रेपो-बी में ब्रांचिंग, रेपो-ए के साथ गड़बड़ करेगा और रेपो-ए में ब्रांचिंग से विस्की (फोल्डर को हटाने में परेशानी आदि) होगी। सबमॉड्यूल निश्चित रूप से जाने का रास्ता है।
आप प्राप्त कर सकते हैं कि आप क्या चाहते हैं (कि REPO-A रेपो में सभी फाइलें शामिल हैं, जिनमें फ़ोल्डर REPO-B केवल एक संदर्भ के बजाय) "git-subrepo" का उपयोग करके शामिल हैं:
https://github.com/ingydotnet/git-subrepo
यह अभी भी काम करता है अगर आपके कुछ योगदानकर्ताओं के पास सब्रेपो कमांड स्थापित नहीं है; वे संपूर्ण फ़ोल्डर संरचना देखेंगे, लेकिन सबप्रॉप में परिवर्तन करने में सक्षम नहीं होंगे।