2010-12-28 13 views
6

मेरे पास इस आकार के साथ गिट में दो शाखाएं हैं।एक चरण में जटिल इंटरैक्टिव रिबेस?

* fffffff commit f 
* ddddddd commit d 
* bbbbbbb commit b 
| * eeeeeee commit e 
| * ccccccc commit c 
| * aaaaaaa commit a 
|/ 
* 2222222 base revision 2 
* 1111111 base revision 1 

मैं रीबेज --इंटरएक्टिव के साथ काम करना चाहता हूं और फिर से काम करना चाहता हूं। हालांकि मैं इस तरह के एक आकार के साथ कई कामों में घुसपैठ करना चाहता हूं।

* ffffff2 commit f 
* eeeeee2 commit e 
* dddddd2 commit d 
* cccccc2 commit c 
* bbbbbb2 commit b 
* aaaaaaa commit a 
* 2222222 base revision 2 
* 1111111 base revision 1 

वहाँ एक ही चरण में इस रिबेस करने के लिए एक तरीका है? मैंने प्रतिबद्धता ई के शीर्ष पर प्रतिबद्धता बी को दोबारा दोबारा करने की कोशिश की और फिर सभी कामों को क्रमबद्ध करने के लिए दूसरा इंटरैक्टिव रिबेस किया। समस्या यह है कि मुझे मर्ज विवाद मिलते हैं (उदाहरण के लिए प्रतिबद्ध बी और प्रतिबद्ध ई के बीच) कि मैं अन्यथा नहीं देखूंगा (प्रतिबद्ध करने के बाद प्रतिबद्ध बी रखकर) और यह संघर्षों को हल करने के लायक नहीं है।

उत्तर

8

प्रारंभ किसी भी एक शाखा (या तो BranchWithF या BranchWithE) और इंटरैक्टिव रिबेस जारी है, उदाहरण के

 
git checkout BranchWithF 
git rebase -i HEAD~3 

के लिए साथ जब संपादक और प्रतिबद्ध सूची पॉप अप होता है, पढ़ा जोड़ने (: पर टाइप आपका कीबोर्ड ...) और इंटरलीव

 
pick aaaaaaa 
pick ccccccc 
pick eeeeeee 

सूची में आप फिट बैठते हैं।

बाद में, BranchWithF सभी 6 प्रतिबद्ध होगा, और आप दूर BranchWithE (अभी भी अपने 3 करता है) फेंक कर सकते हैं।

+0

वाह, सही! मुझे कभी नहीं पता था कि आप एक इंटरैक्टिव रिबेस के दौरान लाइन जोड़ सकते हैं। मेरे पास एक समान सवाल था कि आपको यहां क्रेडिट प्राप्त करना चाहिए: http://stackoverflow.com/questions/3251011/can-i-rebase-and-squash-commits-at-the-same-time –

+0

उत्तर वहां पोस्ट किया गया। – user502515

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