มี 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
ชุดตัวเลือกการกำหนดค่าแทนการเริ่มต้นdiff3
merge