2011-07-17 13 views
6

मेरे पास एक समान कोड बेस के आधार पर कई अलग-अलग बंद स्रोत परियोजनाएं हैं और प्रत्येक दिन मुझे परिवर्तनों और फ़िक्सेस को एक से दूसरे और पीछे की प्रतिलिपि बनाने की आवश्यकता होती है।गिट के साथ कई समान लेकिन विभिन्न परियोजनाओं का प्रबंधन कैसे करें?

अपनी परियोजनाओं में से कुछ के रूप में Git submodules उपयोग करने के लिए और दूसरों में मैं submodules के साथ अपने ग्राहकों गड़बड़ नहीं करना चाहती बहुत अधिक भिन्नताएं कर रहे हैं और इसके परिणामस्वरूप अब अन्य परियोजनाओं पर मेरे काम में झांक सकते हैं मुझे लगता है कि git patch और git apply साथ जो एक है कठिन काम

मैं बारे में मेरी मशीन पर स्थानीय खजाने के बीच git pull और git push करने के लिए एक स्विच पर विचार कर रहा हूँ फलस्वरूप git cherry-pick और git merge का उपयोग कर आवश्यक परिवर्तन लेने के लिए, लेकिन वहाँ एक बेहतर तरीका है?

+1

क्या आपकी परियोजनाएं सामान्य कोड साझा करती हैं? यदि हां, तो आपके पास तीन भंडार हो सकते हैं: कोर, प्रोजेक्ट ए और प्रोजेक्ट बी। परिवर्तन और फिक्सेस 'कोर' में होते हैं और प्रोजेक्ट ए और प्रोजेक्ट बी में खींचे जाते हैं। प्रोजेक्ट रिपोजिटरी – knittl

+0

में प्रोजेक्ट के लिए अद्वितीय परिवर्तन होता है क्या आप समझा सकते हैं कि आप submodules का उपयोग क्यों नहीं कर सकते? – celavek

+0

@knittl ऐसा नहीं कर सकता है, क्योंकि मुझे यह नियंत्रित करने की आवश्यकता है कि कौन सा परिवर्तन जाता है, जहां मैं उनके लिए चार्ज करता हूं – sanmai

उत्तर

1

git cherry-pick का उपयोग कर आप जो चाहते हैं वह कर सकते हैं। एक रिमोट के रूप में अन्य भंडार रखने से आप प्राप्त कर सकते हैं, आप अभी भी एक काम कर सकते हैं। आपको रिमोट की शाखा बनाने की ज़रूरत नहीं है, बस बदलावों में लाएं और चेरी-उस प्रतिबद्धता के sha1 को चुनें जिसे आप पोर्ट करना चाहते हैं। जब आप धक्का देते हैं, तो उसे अन्य प्राप्त संदर्भों को धक्का नहीं देना चाहिए, क्योंकि वे आपकी वर्तमान शाखा में नहीं हैं, केवल चेरी-उठाई गई प्रतिबद्धता है।

4

निम्नलिखित अधिक सुझाव

Subtree merging

Stitching together repositories

मैं इस में भी वास्तव में रुचि है और अगर मैं किसी भी निश्चित जवाब के लिए मिलता है मैं एक अद्यतन के साथ आया हूँ की तरह हैं।

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