निम्नलिखित मामले को लें:
मेरे पास विषय शाखा में कुछ काम है और अब मैं वापस मास्टर में विलय करने के लिए तैयार हूं:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
मैं मास्टर से मर्ज करता हूं, संघर्षों को हल करता हूं और अब मेरे पास है:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
अब, मर्ज में मुझे कुछ समय लगा, इसलिए मैं एक और खोज करता हूं और ध्यान देता हूं कि दूरस्थ मास्टर शाखा में नए परिवर्तन हैं:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
यदि मैं गुरु से 'गित प्रतिशोध मूल / गुरु' की कोशिश करता हूं, तो मुझे फिर से सभी संघर्षों को हल करने के लिए मजबूर किया जाता है, और मैं विलय की प्रतिबद्धता भी खो देता हूं:
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
क्या मर्ज कमिट को रिबेट करने का एक साफ तरीका है, इसलिए मैं एक इतिहास के साथ समाप्त होता हूं जैसे कि मैं नीचे दिखा रहा हूं?
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1
git config --global pull.rebase preserve
हमेशा छूट को संरक्षित करने के लिए एक छूट के दौरान
git --rebase-merges
अंततः पुराने को बदल देगा git --preserve-merges
। देखें क्या वास्तव में Git का " rebase --preserve-merges
" (और क्यों?) है
--preserve-merges
पदावनत किया गया है। उपयोगgit rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master