इसमें 4 फाइलें शामिल हैं:
$LOCAL
उस शाखा पर फ़ाइल जहाँ आप विलय कर रहे हैं; जब दिखाया गया है तो मर्ज प्रक्रिया से अछूता
$REMOTE
उस शाखा पर फ़ाइल जहाँ से आप विलय कर रहे हैं; जब दिखाया गया है तो मर्ज प्रक्रिया से अछूता
$BASE
$ LOCAL और $ REMOTE का सामान्य पूर्वज, यानी। वह बिंदु जहां दो शाखाओं ने माना फ़ाइल को बदलना शुरू कर दिया; जब दिखाया गया है तो मर्ज प्रक्रिया से अछूता
$MERGED
आंशिक रूप से मर्ज की गई फ़ाइल, संघर्षों के साथ; यह केवल मर्ज प्रक्रिया द्वारा छुआ गया फ़ाइल है, और वास्तव में, आपको कभी नहीं दिखाया गया हैmeld
$MERGED
फ़ाइल एक ही है कि होता है <<<<<<
, >>>>>>
, =====
(और, शायद, ||||||
) मार्कर (कि परिसीमित संघर्ष)। यह वह फ़ाइल है जिसे आप संघर्षों को ठीक करने के लिए मैन्युअल रूप से संपादित करते हैं।
मैनुअल टकराव संपादन और दृश्य संघर्ष संपादन अलग-अलग फ़ाइलों पर किया जाता है और अलग-अलग informations प्रस्तुत किया जाता है।
Mergetool (मान का उपयोग करते समय meld
), फ़ाइलों को उसमें देख रहे हैं कर रहे हैं: $LOCAL
, $BASE
, $REMOTE
। ध्यान दें कि आप $MERGED
फ़ाइल को नहीं देखते हैं , हालाँकि इसे एक छिपे हुए पैरामीटर के रूप में पास किया गया हैmeld
वहाँ संपादित किए गए परिणाम को लिखने के लिए ।
दूसरे शब्दों में meld
, आप फ़ाइल को बीच में, फ़ाइल में संपादित कर रहे हैं $BASE
, और आप बाईं ओर से या दाईं ओर से मैन्युअल रूप से सभी परिवर्तन उठाते हैं । यह एक साफ फ़ाइल है, जिसे मर्ज प्रक्रिया द्वारा स्पर्श नहीं किया गया है। एकमात्र गड़बड़ यह है कि जब आप सहेजते हैं, तो आप $BASE
फ़ाइल में नहीं बचाते हैं , लेकिन चौथे छिपे हुए पैरामीटर में meld
, वह $MERGED
फ़ाइल है (जिसे आप देखते भी नहीं हैं)। $BASE
फ़ाइल है नहीं कोई विरोध या आंशिक सफल मर्ज के होते हैं, क्योंकि यह नहीं है $MERGED
फ़ाइल ।
दृश्य संपादन में, जब आपके पास $BASE
फ़ाइल (फ़ाइल के बजाय $MERGED
) पेश होती है, तो git
मूल रूप से विलय करने के लिए अपने सभी प्रयासों को छोड़ देता है (वे प्रयास दिखाई देते हैं, यदि आप $ MERGED फ़ाइल में चाहते हैं) और आपको पूरी तरह से विलय करने की अनुमति देता है खरोंच से ।
लब्बोलुआब यह है कि मैनुअल और विजुअल मर्जिंग टकराव में आप एक ही फाइल को नहीं देख रहे हैं, लेकिन अंतिम परिणाम उसी फाइल में लिखा है (वह $MERGED
फाइल है)।
संघर्ष के मैनुअल सुधार पर किया जाता है $MERGED
क्योंकि git
इसका मतलब नहीं है कि आप तीन फ़ाइलों पेश करने के लिए, तो यह तीन फ़ाइलें (से जानकारी squashes $LOCAL
, $BASE
, $REMOTE
कि में) $MERGED
फ़ाइल।
लेकिन दृश्य उपकरण साधन आप तीन फ़ाइलों को दिखाने के लिए: वे आपको बताएंगे कि $LOCAL
, $BASE
, $REMOTE
फ़ाइलें। आप फ़ाइलों $LOCAL
और $REMOTE
फ़ाइलों से परिवर्तन उठा रहे हैं और आप $BASE
फ़ाइल में ला रहे हैं , पूरी तरह से फिर से निर्माण कर रहे हैं और यहां तक कि $MERGED
फ़ाइल के विलय के असफल प्रयास को भी लिख रहे हैं ।
merge.conflictstyle
कॉन्फ़िगरेशन विकल्प सेट होने पर स्वचालित विलय में विफल होdiff3
जाता हैmerge
।