2011-05-29 12 views
5

मेरी परियोजना कई तृतीय पक्ष पुस्तकालयों का उपयोग करती है। मैं http://progit.org/book/ch6-7.html में वर्णित उप-विलय विलय प्रक्रिया का उपयोग करता हूं। मैं अन्य डेवलपर्स करके पुस्तकालयों पुस्तकालय रेपोस से नई जानकारी को बनाए रखने और समय-समय पर विलय करने के लिए अनुमति देने के लिए करना चाहते हैं: वहाँ rack_remote और rack_branch प्रकाशित करने के लिए एक रास्ता हैकई साइटों से विलय गिट सबट्री का उपयोग

$ git checkout rack_branch 
$ git pull 

, तो वे केंद्रीय भंडार का हिस्सा हो जाएगा , अन्य डेवलपर्स को भी उनका उपयोग करने की अनुमति देने के लिए?

उत्तर

2

आपको शायद अपने प्रोजेक्ट के कुछ दस्तावेज़ों में प्रत्येक उपट्री के "अपस्ट्रीम" के लिए उपसर्ग, यूआरएल और शाखा दस्तावेज करना चाहिए।

नीचे दिए गए उदाहरण बताते हैं कि यह जानकारी अक्सर आपके उप-विलय विलय प्रतिबद्ध संदेशों में दर्ज की जाएगी, लेकिन यह विलय और/या खींचने के सही तरीके से निर्भर करती है।


पर विचार प्रारंभिक सबट्री मर्ज इन आदेशों के साथ बनाने के लिए:

git merge --no-commit sub/master 
git read-tree -u --prefix=sub sub/master 
git commit 

संदेश प्रतिबद्ध निम्नलिखित होगा:

Merge remote-tracking branch 'sub/master' 

हम देख सकते हैं कि दूरदराज के sub नामित किया गया था और शाखा का नाम master था, लेकिन हमें यूआरएल नहीं दिखाई देता है। अंतिम चरण में मैन्युअल प्रतिबद्धता करते समय आप संदेश में यूआरएल जोड़ सकते हैं।

बाद में, आप नई 'नदी के ऊपर "परिवर्तनों को शामिल करने git pull उपयोग कर सकते हैं:

git pull -Xsubtree=sub sub master 

डिफ़ॉल्ट प्रतिबद्ध संदेश भंडार यूआरएल और शाखा के नाम शामिल होंगे:

Merge branch 'master' of server:path/to/repository 

दूसरी ओर , आरंभिक विलय और बाद के विलयों में विविधताएं जो शाखा नाम का उपयोग करके प्रतिबद्ध वस्तुओं को सीधे संदर्भित करती हैं (उदाहरण के लिए 15dbbdasub/master के बजाय) शाखा नाम को रिकॉर्ड होने से रोक देगा; अगर कोई sub master के बजाय . remotes/sub/master से खींचने का निर्णय लेता है तो यूआरएल रिकॉर्ड नहीं करने के लिए भी यही होता है।

0

क्या आपने इसके बजाय submodules का उपयोग करने पर विचार किया है? ऐसा लगता है कि यह आपके वर्कफ़्लो में फिट होगा।

+0

मैं उन पुस्तकालयों को संशोधित करने जा रहा हूं जिन्हें मैं आयात कर रहा हूं, और मैं जरूरी नहीं कि उन संशोधनों को प्रकाशित करना चाहता हूं। क्या submodules बाहरी भंडार में स्थानीय संशोधन करने की अनुमति देते हैं? या वे सिर्फ बाहरी भंडार से जुड़े हैं? – wanderingbear

संबंधित मुद्दे