2011-09-29 15 views
10

मैं तीन शाखाओं ए, बी और सी बी नियमित रूप से सी में विलय कर दिया गया है के अंतर विलयGit - शाखाओं

  o---o---o A 
     /
--------o---o---o---o---o---o B 
     \  \  \ \ 
      o---o---o---o---o---o C 

अब मैंने जो परिवर्तन सी में किया था मर्ज करना चाहते हैं, लेकिन मर्ज के बिना बी से, ए के शीर्ष पर यह गिट में ऐसा करने का सबसे आसान तरीका क्या है?

+1

जो शाखा आप उसे मर्ज करना चाहते हैं करने के लिए लगता है? –

+1

वह इसे – CharlesB

+1

के शीर्ष पर चाहता है, इससे कोई ऐसी स्थिति नहीं आती है जहां आपने क्यू, डब्ल्यू (शाखा सी), ई, आर (शाखा बी) - विलय - टी, वाई (शाखा सी) और बस किया है शाखा सी से क्यू, डब्ल्यू, टी, वाई का चयन ई, आर (जो शायद टी, वाई आधार पर) से गायब कोड के कारण चीजों को तोड़ देगा? –

उत्तर

8

गिट रिबेस का उपयोग करें।

पहले, बी के शीर्ष पर अपने सी rebase:

git checkout C 
git checkout -b rebasedC#Let's do a new branch for it also, just in case 
git rebase B 

यह जगह होगा सब सी बी से प्रत्यारोपण शाखा rebasedC अब हम चाहते बी के लिए पर करता है एक करने के लिए:

git rebase --onto A B rebasedC 

तो, अब आपके पास रिजर्व सी शाखा में ए के शीर्ष पर आपका सी-कॉमिट है। अब आप अपने ए को तेज़ी से आगे बढ़ा सकते हैं:

git checkout A 
git merge rebasedC 
git branch -d rebasedC# I don't think you would need it. 

यह सब मुझे उम्मीद है।

+1

सी में किए गए बी विलय से कैसे छुटकारा पाता है? – CharlesB

+3

रीबेस इसे करता है। फिर आप बी के शीर्ष पर चलते हैं, जाहिर है कि सी को अब विलय की आवश्यकता नहीं है, इसलिए उन्हें गिरा दिया गया है। – kan

+2

मैंने इसे अपने गिट के साथ आजमाया है, अब मेरे पास पेड़ की संरचना है: http://files.rsdn.ru/20380/git.png (यहां एक शाखा को इसके बजाय 'मास्टर' के रूप में नामित किया गया है)। – kan

1

आप cherry-picking सी के गैर-विलय पैच को आजमा सकते हैं। मर्ज विवादों को संभालने के लिए तैयार रहें। :)

2

अगर मैं सही ढंग से समझ, तुम तो मामला यही ए

में सी से कुछ करता लेना चाहते हैं, क्यों नहीं है आप "चेरी चुन सकते हैं जहाँ" उन्हें? यह संघर्ष को जन्म दे सकता है, लेकिन मैं अपने अपने सबसे अच्छे मौका :)

http://schacon.github.com/git/git-cherry-pick.html

http://schacon.github.com/git/user-manual.html#reordering-patch-series

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