उत्तर डिफ़ॉल्ट विलय के लिए हाँ है। एक तीन-तरफा विलय एक आम पूर्वज पाता है और फिर दोनों तरफ से मतभेद लागू करता है, एक ऑपरेशन जो ऑर्डर निर्भर नहीं है। मर्ज-ऑर्डरिंग और कम्यूटिटीविटी के विषय ने git list पर एक आकर्षक चर्चा उत्पन्न की है (यदि आप उस तरह की चीज में हैं, तो यह है)। नोट B into C
और C into B
सममित होना चाहिए, लेकिन (B into C) into A
बनाम B into (C into A)
के लिए यह आवश्यक नहीं कहा जा सकता है।
में थोड़ा और अधिक विस्तार करने के लिए नीचे दिए गए विन्स की टिप्पणी और प्रश्न पर seh की टिप्पणी के आधार पर, वहाँ B into C
और C into B
के बीच दो ध्यान देने योग्य मतभेद हैं, जिनमें से न तो प्रश्न में संदर्भित स्वत: मर्ज संकल्प को प्रभावित किया जाएगा।
पहला, इतिहास अलग होगा। विलय प्रतिबद्धता के माता-पिता विलय आदेश के आधार पर बदल जाएंगे। इन उदाहरणों के लिए, मैं "first_branch" और "second_branch" का उपयोग करने जा रहा हूं, इसलिए मैं कामों का प्रतिनिधित्व करने के लिए अक्षरों को आरक्षित कर सकता हूं।
git checkout first_branch && git merge second_branch
E <- merge commit
|\
| D <- second_branch's tip
| |
| C <- another commit on second_branch
| |
| B <- and another
|/
A <- first_branch's tip before the merge
इस मामले में, ई, E^1
की "पहले माता-पिता", मर्ज से पहले first_branch के टिप है। second_branch विलय प्रतिबद्धता, उर्फ E^2
का "दूसरा अभिभावक" है। अब रिवर्स पर विचार करें:
git checkout second_branch && git merge first_branch
E <- merge commit
|\
| D <- first_branch's tip
| |
| C <- another commit on first_branch
| |
| B <- and another
|/
A <- second_branch's tip before the merge
माता-पिता को उलट दिया जाता है। E^1
विलय से पहले second_branch की नोक है। E^2
first_branch की नोक है।
दूसरा, विवादों का प्रदर्शन क्रम विपरीत होगा।पहले मामले में, एक संघर्ष इस प्रकार दिखाई देंगे:
<<<<<<< HEAD
This line was added from the first_branch branch.
=======
This line was added from the second_branch branch.
>>>>>>> second_branch
दूसरे मामले में, एक ही संघर्ष इस प्रकार दिखाई देगा:
<<<<<<< HEAD
This line was added from the second_branch branch.
=======
This line was added from the first_branch branch.
>>>>>>> first_branch
इन मतभेदों की न तो स्वत: मर्ज संकल्प को प्रभावित है, लेकिन वे जब आप तीन-तरफा मर्ज ऑर्डर रिवर्स करते हैं तो दिखाई दें।
संबंधित नोट पर, आपको गिट मेलिंग सूची से संबंधित यह तीन-वर्षीय धागा प्रासंगिक हो सकता है, इस बारे में कि गिट रिकॉर्ड विलय कैसे तरीके से विलय की "दिशा" के प्रति संवेदनशील है: http: // thread .gmane.org/gmane.comp.version-control.git/127361 – seh