2010-06-01 18 views
65

मैं अपनी सभी परियोजनाओं के लिए एसवीएन का उपयोग कर रहा हूं। कभी-कभी प्रोजेक्ट बी प्रोजेक्ट ए से एक प्रति के रूप में उत्पन्न होता है जब प्रोजेक्ट ए में सामान्य परिवर्तन होता है, तो मैं निर्देशिका बी के भीतर svn merge A का उपयोग कर सकता हूं और यह उन परिवर्तनों को मर्ज करेगा।गिट विभिन्न भंडार विलय?

अब, अगर मैं गिट का उपयोग करना चाहता था। मुझे अपनी सभी परियोजनाओं को एक ही भंडार में पसंद नहीं है क्योंकि मुझे सब कुछ क्लोन करना होगा और एसवीएन में केवल एक प्रोजेक्ट नहीं चुन सकता है। लेकिन प्रत्येक प्रोजेक्ट के लिए एक संग्रह है, मैं ऐसा करने के बारे में कैसे जा सकता हूं जैसा मैंने पहले एसवीएन के साथ किया था?

सवाल यह है: यह संरचना अगर मैं कई उप कि वास्तव में सभी एक मूल परियोजना से संबंधित है चाहते हैं और उन्हें सिंक में रखने के लिए सबसे अच्छा तरीका क्या है? और है कि मैं भी अलग से

+1

शायद आप गिट-सबमिड्यूल (http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html) पर बेहतर रूप से देखेंगे। – Cascabel

+0

@ जेफ्रोमी लेकिन स्रोत फाइलें मूल रूप से एक ही इतिहास से हैं, इसका मतलब यह होगा कि मेरे पास फाइलों की दो प्रतियां हैं? मुझे लगता है कि बाहरी पुस्तकालयों का ट्रैक रखने के लिए सबमिशन अधिक है जिसमें आप अलग-अलग फ़ाइलों (मर्ज नहीं) के रूप में शामिल हैं? – baloo

+0

कोई बात नहीं, मैंने नहीं देखा कि आपने कहा था कि बी ए की एक प्रति थी। "प्रश्न है" पढ़ना, जहां आपने कहा था "उपप्रोजेक्ट ... एक मूल परियोजना से संबंधित ... सिंक में" मैंने माना कि आपका मतलब है उस मूल परियोजना के भाग लेते हुए, लेकिन उन्हें मेटाप्रोजेक्ट में सिंक में रखते हुए। – Cascabel

उत्तर

113

आप दो परियोजनाओं, proj1 और proj2 है और proj2 में proj1 के परिवर्तन मर्ज करना चाहते हैं, तो आप इसे इस तरह करना होगा उन्हें बाहर की जाँच करने में सक्षम होना चाहता हूँ:

# in proj2: 
git remote add proj1 path/to/proj1 
git fetch proj1 
git merge proj1/master # or whichever branch you want to merge 

मेरा मानना ​​है कि यह वही काम करता है जो आप एसवीएन के साथ कर रहे थे।

+0

लेकिन परिवर्तन # 2 ट्रैक मर्ज करेगा कि हम पहले से ही इस तरह से बदलाव # 1 विलय कर चुके हैं? मुझे सही याद रखने पर हर बार एक नया परिवर्तन जोड़ा जाने पर सभी बदलावों के लिए सभी परिवर्तनों (और सही संघर्ष) को फिर से विलय करना पड़ा। यह एसवीएन-रास्ता – baloo

+0

नहीं हुआ था बेशक, सामान्य रूप से कामों को मर्ज करें। आपको "सभी परिवर्तनों को फिर से शुरू करने" की आवश्यकता नहीं है। यह सामान्य विलय से अधिक कुछ नहीं है, जिसे आप एक दूरस्थ सर्वर के साथ उपयोग करेंगे। –

+0

क्या होगा यदि मेरे पास रिमोट नहीं है? मैं वही करना चाहता हूं (projA projB में विलय करें) लेकिन मैं केवल स्थानीय रूप से रिमोट के बिना काम कर रहा हूं। –

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