জড়িত রয়েছে 4 টি ফাইল:
$LOCALযে শাখায় আপনি মার্জ করছেন সেখানে ফাইল; আপনাকে দেখানো হলে মার্জ প্রক্রিয়া দ্বারা অচ্ছুত
$REMOTEযে শাখায় আপনি মার্জ করছেন সেখানকার ফাইলটি; আপনাকে দেখানো হলে মার্জ প্রক্রিয়া দ্বারা অচ্ছুত
$BASE$ স্থানীয় এবং EM রিমোটের সাধারণ পূর্বপুরুষ, যেমন। যেখানে দুটি শাখা বিবেচিত ফাইলটি ডাইভার্ট করা শুরু করেছিল; আপনাকে দেখানো হলে মার্জ প্রক্রিয়া দ্বারা অচ্ছুত
$MERGEDআংশিকভাবে সংহত ফাইল, সংঘাতের সাথে; এটি একমাত্র ফাইল যা মার্জ প্রক্রিয়াটি স্পর্শ করে এবং বাস্তবে কখনও আপনাকে দেখায় নাmeld
$MERGEDফাইলটিতে একটি যে রয়েছে <<<<<<, >>>>>>, =====(এবং হয়তো, ||||||) চিহ্নিতকারী (যে সীমানা দ্বন্দ্ব)। এই ফাইল যা আপনি সম্পাদনা করা হয় ম্যানুয়ালি সঠিক দ্বন্দ্ব।
ম্যানুয়াল দ্বন্দ্ব সম্পাদনা এবং ভিজ্যুয়াল বিবাদগুলি সম্পাদনা বিভিন্ন ফাইলে করা হয় এবং বিভিন্ন তথ্য উপস্থাপন করে।
Mergetool (অনুমান ব্যবহার করার সময় meld), ফাইল তাতে দেখতে পান আছেন: $LOCAL, $BASE, $REMOTE। মনে রাখবেন যে $MERGEDফাইলটি আপনি দেখতে পাচ্ছেন না , যদিও meldএটি সম্পাদনার ফলাফল লিখতে এটি একটি গোপন পরামিতি হিসাবে পাস করা হয়েছে ।
অন্য কথায়, ইন meld, আপনি মাঝখানে, ফাইলটি সম্পাদনা করছেন $BASEএবং আপনি বাম থেকে বা ডান দিক থেকে সমস্ত পরিবর্তন নিজেই বেছে নিচ্ছেন । এটি একটি পরিষ্কার ফাইল, মার্জ প্রক্রিয়া দ্বারা স্পর্শ করা হয়নি। শুধুমাত্র সামান্য ত্রুটি যে, যখন আপনি সেভ, আপনি মধ্যে সংরক্ষণ করবেন না $BASEফাইল, কিন্তু চতুর্থ লুকানো প্যারামিটারে meldহলো, $MERGEDফাইল (যে আপনি এমনকি দেখতে না)। $BASEফাইল নেই না কোন দ্বন্দ্ব বা আংশিক সফল মার্জ ধারণ কারণ তা না হয় $MERGEDফাইল ।
ভিজ্যুয়াল সম্পাদনায়, যখন $BASEফাইলটি আপনার কাছে উপস্থাপন করা হয় (ফাইলের পরিবর্তে $MERGED) gitমূলত মার্জ করার জন্য তার সমস্ত প্রচেষ্টা বাতিল করে দেয় (সেই প্রচেষ্টাগুলি দৃশ্যমান হয়, যদি আপনি চান, $ মার্জড ফাইলে) এবং আপনাকে মার্জিং সম্পূর্ণরূপে করতে দেয় গোড়া থেকে ।
তল লাইনটি হ'ল ম্যানুয়াল এবং ভিজ্যুয়াল মার্জিং বিরোধগুলিতে আপনি একই ফাইলগুলির দিকে তাকাচ্ছেন না, তবে চূড়ান্ত ফলাফলটি একই ফাইলটিতে লিখিত হয়েছে (সেটিই $MERGEDফাইল)।
দ্বন্দ্বের ম্যানুয়াল সংশোধন সম্পন্ন হবে $MERGEDকারণ git গড় কোন হয়েছে আপনি তিনটি ফাইল উপস্থাপন, তাই এটি তিনটি ফাইল (থেকে তথ্য squashes $LOCAL, $BASE, $REMOTEযে ভাষায়) $MERGEDফাইল।
কিন্তু চাক্ষুষ সরঞ্জাম উপায় আছে আপনি তিনটি ফাইল দেখানোর জন্য তারা আপনাকে দেখাতে $LOCAL, $BASE, $REMOTEফাইল। আপনি $LOCALএবং $REMOTEফাইলগুলি থেকে পরিবর্তনগুলি বেছে নিচ্ছেন এবং আপনি সেগুলি $BASEফাইলে আনছেন , পুরোপুরি পুনর্নির্মাণ এবং এমনকি $MERGEDফাইলটি মার্জ করার ব্যর্থ প্রচেষ্টা ওভাররাইট করে ।
merge.conflictstyleকনফিগারেশন বিকল্প সেট থাকলে তাদের স্বয়ংক্রিয়ভাবে মার্জ করা ব্যর্থ হয়েছিল ।diff3merge