มี 4 ไฟล์ที่เกี่ยวข้อง:
$LOCALไฟล์ในสาขาที่คุณกำลังผสาน มิได้ถูกแตะต้องโดยกระบวนการผสานเมื่อแสดงให้คุณเห็น
$REMOTEไฟล์ในสาขาที่คุณรวมเข้าด้วยกัน; มิได้ถูกแตะต้องโดยกระบวนการผสานเมื่อแสดงให้คุณเห็น
$BASEบรรพบุรุษร่วมกันของ $ LOCAL และ $ REMOTE คือ จุดที่ทั้งสองสาขาเริ่มโอนไฟล์ที่พิจารณา มิได้ถูกแตะต้องโดยกระบวนการผสานเมื่อแสดงให้คุณเห็น
$MERGEDไฟล์ที่ผสานบางส่วนโดยมีข้อขัดแย้ง นี่เป็นไฟล์เดียวที่สัมผัสโดยกระบวนการผสานและจริงๆแล้วไม่เคยแสดงให้คุณเห็นmeld
$MERGEDไฟล์เป็นคนที่มี<<<<<<, >>>>>>, =====(และอาจจะ||||||) เครื่องหมาย (ความขัดแย้งคั่น) นี่คือไฟล์ที่คุณแก้ไขด้วยตนเองเพื่อแก้ไขข้อขัดแย้ง
การแก้ไขข้อขัดแย้งด้วยตนเองและการแก้ไขข้อขัดแย้งด้วยภาพจะกระทำในไฟล์ที่แตกต่างกันและนำเสนอข้อมูลที่แตกต่างกัน
เมื่อใช้ 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ชุดตัวเลือกการกำหนดค่าแทนการเริ่มต้นdiff3merge