2012-03-27 15 views
7

मेरा गिट भंडार ~ 2,000 काम करता है। शैक्षणिक उद्देश्यों के लिए, मैं git rebase -i के साथ खेल रहा हूं।बेवकूफ गिट rebase नकली संघर्ष के साथ विफल रहता है?

जब मैं टाइप git rebase -i first-commit (जहां first-commit प्रारंभिक के लिए एक टैग है रेपो के लिए प्रतिबद्ध) और सभी में कुछ भी नहीं बदल (अर्थात् सभी pick <hash> अछूता छोड़), Git अपने इतिहास पुनः शुरू होता है, लेकिन संघर्ष का हवाला देते हुए प्रतिबद्ध के दर्जनों पर विफल रहता है। इसका क्या कारण होगा? यह मेरे पूरे इतिहास को फिर से क्यों नहीं चलाता है?

उत्तर

6

मैंने इसे ओपन सोर्स प्रोजेक्ट के साथ पुन: प्रयास करने का प्रयास किया, और इसी तरह के परिणाम प्राप्त हुए, विवाद इंटरैक्टिव का उपयोग करके पहली प्रतिबद्धता के शीर्ष पर पुन: प्रतिक्रिया करते समय किए गए संघर्ष।

मैंने इसे दूसरी बार भाग लिया और देखा कि यह एक ही प्रतिबद्धता में हो रहा था। फिर हालांकि सफल

* 843f5df (HEAD, tag: new-tag) API change for lttng_destroy_session prototype 
* 90192ee Merge branch 'master' 
|\ 
| * 4dbd54a update loglevel printout 
| * e4baff1 listing and activation of loglevel by number 
* | 76d45b4 Add support for UST enable all tracepoints 
* | 6181537 Cleanup lttng enable event command 
|/ 
* 13dce3b loglevels: allow enable/disable 
* 81afa34 Add loglevel to event list 
* 57ab763 ABIs now support 256 char event names 

रिबेस चल विकल्प -p साथ किया गया था:

-p, --preserve-merges 
      Instead of ignoring merges, try to recreate them. 

      This uses the --interactive machinery internally, but combining it with the --interactive option explicitly is generally not a 
      good idea unless you know what you are doing (see BUGS below). 

Git रिबेस बदल जाएगा

git clone git://git.lttng.org/lttng-tools.git 
git tag first-commit fac6795 
git rebase -i first-commit 

Could not apply e4baff1... listing and activation of loglevel by number 
git rebase --abort 

यह संघर्ष किसी मर्ज के स्थान के पास हो रहा था लगता है इतिहास अधिक रैखिक होने के लिए। चूंकि इतिहास में विलय हो रहे हैं, इसलिए विलय बिंदु समाप्त होने पर संघर्ष होने पर उन्हें हल करना होगा।

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