2008-10-24 13 views
9

मान लें कि शाखा बी शाखा ए से एक विषय शाखा है, और आप शाखा सी में उन परिवर्तनों को चाहते हैं। इसका मतलब यह है कि जब आप शाखा ए और शाखा बी की विलय प्रतिबद्धता को चुनते हैं तो शाखा का चयन करें सी?चेरी-मर्ज

उदाहरण के लिए, यदि आप शाखा ए के पुराने सिर को निर्दिष्ट करने के लिए -एम ध्वज का उपयोग करते हैं तो चेरी को शाखा सी में विलय चुनने के लिए, क्या इसका मतलब यह है कि "चेरी-उठाए गए प्रतिबद्ध पेड़ और पुराने सिर के बीच अंतर लें शाखा ए के और इसे शाखा सी पर लागू करें? "

क्या इस विधि का उपयोग करने के लिए कोई गठिया है? git rebase उपयोग कर रहा है (ऐसा लगता है कि जैसे चाहेंगे शाखा सी नज़र अधिक परिवर्तन शाखा बी से बस प्रतिबद्ध से लागू किया जाएगा ए और बी शाखा विलय कर दिया है??)

उत्तर

10

तरह से मैं आमतौर पर ऐसा करते हैं:

git rebase --onto C A B 

यह ए और बी के बीच अंतर लेता है, और शाखाओं में उन diffs को लागू करता है। बोनस के रूप में, रीबेस ए और बी के बीच किसी भी काम को छोड़ देगा जो वही पाठ्यचर्या परिवर्तन करता है जैसा कि शाखा सी में पहले से मौजूद है।

अद्यतन: यदि आपने टिप्पणियों में उल्लेख किया है, तो याद रखें कि गिट ने कभी भी पिछले इतिहास को ओवरराइट नहीं किया है। तो ऊपर दिए गए रिबेज करने के बाद भी, आप उस प्रतिबद्धता पर एक नया शाखा प्रमुख बना सकते हैं जहां बी रिबेस के पहले होता था। दुर्भाग्य से मैं सुबह के इस समय ऐसा करने का एक आसान तरीका नहीं सोच सकता। क्षमा करें मैं और अधिक मदद नहीं कर सका, शायद कोई और आसान तरीका के साथ आ जाएगा!

+0

क्षमा करें, मैंने छोड़ा था कि मैं शाखा बी में परिवर्तन ए और सी दोनों पर लागू करना चाहता था। रिबेस से बी में परिवर्तन आसानी से सी के साथ विलय हो जाएंगे, लेकिन अब ए स्थिति में है कि सी था में कुछ भी मैं ए में भी बदलाव करने के लिए कर सकता हूँ? – Readonly

+0

मुझे खेद है कि प्रश्न उठाने पर मैंने इस तरह के खराब शाखा नामों को चुना :( – Readonly

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

  • कोई संबंधित समस्या नहीं^_^