आइए कल्पना करें कि हमारे पास एक master
शाखा है।
फिर हम एक निर्माण करते हैं newbranch
git checkout -b newbranch
और दो नए कमिट करें newbranch
: कमिट 1 और कमिट 2
फिर हम मास्टर और बनाने के लिए स्विच करते हैं cherry-pick
git checkout master
git cherry-pick hash_of_commit1
में देख gitk
हम देखते हैं कि commit1 तो तकनीकी रूप से वे दो अलग करता हैं और उसके चेरी उठाया संस्करण अलग हैश है,।
अंत में हम विलय newbranch
में master
:
git merge newbranch
और देखते हैं कि अलग-अलग हैश के साथ इन दो कामों को समस्याओं के बिना विलय कर दिया गया था, हालांकि वे कहते हैं कि समान परिवर्तन दो बार लागू किए जाने चाहिए, इसलिए उनमें से एक को विफल होना चाहिए।
क्या वास्तव में मर्ज करते समय कमिट की सामग्री का स्मार्ट विश्लेषण करते हैं और यह निर्णय लेते हैं कि परिवर्तनों को दो बार लागू नहीं किया जाना चाहिए या इन कमिटों को आंतरिक रूप से एक साथ लिंक के रूप में चिह्नित किया गया है?