2012-10-01 21 views
20

मैंने गिट सबमिशन को कितना भयानक माना है, इस बारे में बहुत कुछ पढ़ा है, लेकिन मुझे यकीन नहीं है कि क्या यह केवल उन लोगों की चिल्लाहट है जो इसे महसूस करते हैं या यदि इसमें गंभीर समस्याएं हैं (खासकर मेरे उपयोग के मामले के बारे में)।बाहरी संसाधनों का प्रबंधन करने के लिए उपट्री या सबमिशन का उपयोग करके गिट

मैं सिर्फ इस

website/ 
libs/ 
    js/ 
    fs-slides [external] 
    fs-dialog [external] 

की तरह मेरे रेपो में विभिन्न रेपोस शामिल हैं और आसानी से उन रेपोस अद्यतन करने के लिए संभावना के लिए करना चाहते हैं। जहां तक ​​मैं समझता हूं कि रेपो से सिर्फ एक फ़ाइल को शामिल करने की कोई आसान संभावना नहीं है, है ना? (लेकिन यह ठीक है।)

क्या मुझे इसके लिए सबमिड्यूल का उपयोग करना चाहिए?
या इसके साथ कोई समस्या है? या subtree बहुत आसान है?

उत्तर

11

उप-मॉड्यूल आपके मामले के लिए उपयुक्त है, खासकर जब से आप उन उपरोक्तों को अपनी उपनिर्देशिका में शामिल नहीं करते हैं। में "how exactly does git submodule work" के रूप में वर्णित

मुख्य गंभीर मुद्दा आप submodules का उपयोग कर सकता था, जब उन्हें अपडेट करते समय प्रगति पर अद्यतन चल रहा है:

आप जब एक submodules में प्रतिबद्ध बनाने एक शाखा स्थापित करने के लिए भूल जाते हैं, ने कहा प्रतिबद्ध एक अलग सिर पर बनाया जाएगा, और प्रगति में उन परिवर्तनों को अगले git submodule update पर खो दिया जाएगा (यदि आप अपने सबमिशन रेपो के लिए सक्रिय हैं, तो आप उन्हें reflog के माध्यम से वापस प्राप्त कर सकते हैं)।

फिर, Michaelcomments के रूप में, और ऊपर के लिंक में मैं विस्तार के रूप में, आप अपने आप ही नदी के ऊपर करने के लिए submodule पुश करने के लिए पहले प्रतिबद्ध और धक्का माता पिता रेपो (अप्रकाशित submodule करता धक्का से बचने के लिए)

+1

जब बनाने प्रतिबद्ध जरूरत एक सबमिशन में आपको 'गिट पुश' भी याद रखना चाहिए। क्योंकि यदि आप अपने मुख्य रेपो में 'गिट प्रतिबद्धता और गिट पुश' नहीं करते हैं, तो आप किसी सबमिशन प्रतिबद्धता के संदर्भ को दबा रहे हैं जो कहीं और मौजूद नहीं है। – Michael

+0

@ माइकल अच्छा बिंदु। मैंने इसे अधिक दृश्यता के उत्तर में शामिल किया है। – VonC