यह रिबेस के एक विशेष मामला है सिर्फ इतना है कि शाखा खाली है:
git checkout A
git rebase B
rebase
अधिक सामान्य है; यह इस मामले में भी संभालता है:
से पहले:
A1 -> A2 -> [A]
/
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B]
के बाद:
A1' -> A2' -> [A]
/
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B]
A1 'और A2 की मूल शाखा पर 4 और 8 के बीच का अंतर के लिए खाते विलय कर रहे हैं।
गिट रिबेस बिना किसी परेशानी के इस मामूली मामले को संभालता है। मैंने master
पर दो प्रतिबद्धताओं के साथ एक रेपो बनाया और पहली प्रतिबद्धता की ओर इशारा करते हुए एक शाखा br
शाखा बनाई।
$ git checkout br
Switched to branch 'br'
$ git rebase master
First, rewinding head to replay your work on top of it...
Fast-forwarded br to master.
Poof, किया गया। लॉग अब दूसरी प्रतिबद्धता की ओर इशारा करते हुए शाखा दिखाता है।
हम भी हासिल कर सकते हैं इस "के बाद": [इस ओर इशारा करते हुए के लिए एम Flaschen करने के लिए धन्यवाद याद आ रही थी]:
A1'' -> A2'' -> [A]
/
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B]
शाखा बी में रिबेसिंग के बजाय, हम विशिष्ट नाम हैं 6 प्रतिबद्ध है, जैसे
git checkout A
git rebase 6 # rather than rebase B
कोई A1 देखते हैं और A2 करता है, तो यह मूल प्रश्न को कम कर देता है: 6.
यह इस स्थिति में काम करता है क्योंकि वास्तव में कुछ भी नहीं है; यह सिर्फ शाखा बिंदु को इंगित करता है और इसलिए हम कुछ भी खोए बिना कहीं और सूचक को स्थानांतरित करते हैं। मान लीजिए ए ने कुछ काम किया है? फिर आपको काम करने के लिए 'गिट रिबेस' करना होगा। यह अधिक सामान्य है और इसे "खाली शाखा" मामूली मामला भी संभालना चाहिए। – Kaz
@ काज़, गिट में हल्के शाखाएं हैं, इसलिए वे कभी भी "शामिल" नहीं होते हैं। वे एक प्रतिबद्धता से जुड़े एक चलती चिपचिपा नोट हैं। मेरा जवाब इस परिदृश्य के लिए है, एक रैखिक शाखा इतिहास।यदि यह रैखिक नहीं था, तो मैं देखता हूं कि ओपी वास्तव में क्या चाहता था और समाधान के साथ आया। –
आप तब भी सीवीएस के बारे में कह सकते हैं। एक शाखा में कुछ भी शामिल नहीं है। यह सिर्फ एक शाखा टैग ("चिपचिपा नोट") है जो 1.2.0.2 जैसे शाखा संख्या को दर्शाता है। क्या सीवीएस में हल्के वजन की शाखा है? :) – Kaz