ข้ามไปที่เนื้อหา

diff · + added · − removed

เปรียบเทียบข้อความ

การเปรียบเทียบ “red, green, blue” กับ “red, yellow, blue” ทีละบรรทัดได้ 1 บรรทัดที่เพิ่ม 1 บรรทัดที่ลบ และ 2 บรรทัดที่ไม่เปลี่ยน วางสองข้อความเพื่อดูทุกความแตกต่าง

แต่ละบรรทัดที่เพิ่มมีเครื่องหมาย + และแต่ละบรรทัดที่ลบมีเครื่องหมาย − นอกเหนือจากสี และอักขระที่เปลี่ยนภายในบรรทัดที่ถูกแทนที่จะถูกไฮไลต์ ข้อความขนาดเล็กเปรียบเทียบขณะคุณพิมพ์ ข้อความไม่ออกจากแท็บนี้

Scanned by NortonTM Safe Web

ภาพรวมโดยสรุป

ราคา
ไม่มีค่าใช้จ่าย
บัญชี
ไม่ต้องมี
การอัปโหลด
ไม่เกี่ยวข้อง — ทั้งสองข้อความอยู่ในแท็บของคุณ
วิธีการ
ลำดับย่อยร่วมที่ยาวที่สุดของบรรทัด พร้อมไฮไลต์อักขระที่เปลี่ยน
ผลลัพธ์
บรรทัดที่มีสีและเครื่องหมาย หรือ unified diff ที่มีบริบท 3 บรรทัด
ขีดจำกัดขนาด
5,000 บรรทัดและ 5,000,000 อักขระต่อข้อความ

ตัวอย่างการเปรียบเทียบและผลของตัวเลือก

ตารางมาจากโค้ดเดียวกับเครื่องมือ ตารางแรกเปรียบเทียบสองข้อความสามบรรทัด ตารางที่สองแสดงว่าตัวเลือกเปลี่ยนผลลัพธ์อย่างไรสำหรับบรรทัดคู่หนึ่ง

“red, green, blue” เทียบกับ “red, yellow, blue” หนึ่งคำต่อบรรทัด
เครื่องหมายบรรทัด
=red
−green
+yellow
=blue
“Hello World” เทียบกับ “hello world” (ช่องว่างสองช่อง)
การตั้งค่าบรรทัดที่เพิ่มบรรทัดที่ลบ
ตรงทุกตัว11
ไม่สนใจตัวพิมพ์11
ไม่สนใจช่องว่าง11
ไม่สนใจตัวพิมพ์และช่องว่าง00

วิธีเปรียบเทียบสองข้อความ

1

วางสองข้อความ

ใส่ข้อความเก่าในกล่องต้นฉบับ และข้อความใหม่ในกล่องที่เปลี่ยนแล้ว มีตัวอย่างสั้น ๆ สองชุดอยู่แล้ว สลับเพื่อแลกสองกล่อง และล้างเพื่อทำให้ทั้งสองกล่องว่าง

2

เลือกสิ่งที่นับเป็นความแตกต่าง

ติ๊กไม่สนใจตัวพิมพ์เพื่อถือว่า “Hello” และ “hello” เป็นบรรทัดเดียวกัน และไม่สนใจช่องว่างเพื่อข้ามช่องว่างที่ปลายบรรทัดและช่องว่างซ้ำภายในบรรทัด แสดงเฉพาะที่เปลี่ยนจะซ่อนบรรทัดที่ไม่เปลี่ยน โดยคงไว้ 3 บรรทัดรอบแต่ละการเปลี่ยนแปลง

3

อ่านหรือคัดลอกความแตกต่าง

บรรทัดที่มี − มีเฉพาะในต้นฉบับ บรรทัดที่มี + มีเฉพาะในข้อความที่เปลี่ยนแล้ว คัดลอก unified diff เพื่อวางในข้อความหรือแพตช์ หรือดาวน์โหลดเป็นไฟล์ .diff

วิธีการเปรียบเทียบทำงาน

สองข้อความถูกแบ่งเป็นบรรทัด และเครื่องมือหาลำดับย่อยร่วมที่ยาวที่สุดของบรรทัด ซึ่งคือชุดบรรทัดที่ใหญ่ที่สุดที่ปรากฏในทั้งสองข้อความตามลำดับเดียวกัน ทุกบรรทัดนอกชุดนั้นถูกรายงานว่าลบ (มีเฉพาะในต้นฉบับ) หรือเพิ่ม (มีเฉพาะในข้อความที่เปลี่ยนแล้ว) ดังนั้น diff จึงมีบรรทัดที่เปลี่ยนน้อยที่สุดเท่าที่เป็นไปได้ เมื่อบรรทัดที่ลบตามด้วยบรรทัดที่เพิ่มโดยตรง อักขระที่ต่างกันระหว่างสองบรรทัดจะถูกไฮไลต์

diff ทำงานกับบรรทัดเพราะบรรทัดคือหน่วยที่โค้ด ไฟล์ตั้งค่า และรายการเปลี่ยนแปลง และการเปรียบเทียบแบบบรรทัดยังเร็วสำหรับหลายพันบรรทัด บรรทัดที่ย้ายตำแหน่งจะแสดงหนึ่งครั้งเป็นลบและอีกครั้งเป็นเพิ่ม คำที่เปลี่ยนจะแสดงเป็นบรรทัดที่ถูกแทนที่ พร้อมอักขระที่ไฮไลต์ ตัวขึ้นบรรทัดใหม่ถูกทำให้เป็นมาตรฐาน ไฟล์ที่บันทึกด้วยการขึ้นบรรทัดใหม่แบบ Windows จึงตรงกับไฟล์เดียวกันที่บันทึกแบบ Unix แต่ละข้อความมีได้สูงสุด 5,000 บรรทัดและ 5,000,000 อักขระ ผลลัพธ์ unified diff ใช้รูปแบบทั่วไป: ส่วนหัว --- และ +++ แล้วตามด้วยส่วน @@ ที่มีบริบท 3 บรรทัด

คำถามเกี่ยวกับการเปรียบเทียบข้อความ

text diff ตัดสินอย่างไรว่าอะไรเปลี่ยน

หาลำดับย่อยร่วมที่ยาวที่สุดของบรรทัด หมายถึงบรรทัดมากที่สุดที่สองข้อความมีร่วมกันตามลำดับเดียวกัน บรรทัดนอกชุดนั้นมีเครื่องหมาย − หากมีเฉพาะในต้นฉบับ และ + หากมีเฉพาะในข้อความที่เปลี่ยนแล้ว “red, green, blue” เทียบกับ “red, yellow, blue” คง red และ blue ลบ green และเพิ่ม yellow

ทำไมการเปรียบเทียบทำงานกับบรรทัดไม่ใช่คำ

บรรทัดคือวิธีที่โค้ด บันทึก รายการ และไฟล์ตั้งค่าถูกจัดระเบียบ และผลลัพธ์แบบบรรทัดสั้นพอที่จะอ่านได้ สำหรับบรรทัดที่ถูกแทนที่ อักขระที่ต่างกันจะถูกไฮไลต์ภายในบรรทัด จึงเห็นการเปลี่ยนคำเดียวในประโยคยาวได้ง่าย

สีและเครื่องหมาย + และ − หมายความว่าอะไร

บรรทัดสีเขียวที่มี + ถูกเพิ่มในข้อความที่เปลี่ยนแล้ว บรรทัดสีแดงที่มี − ถูกลบออกจากต้นฉบับ บรรทัดที่ไม่มีเครื่องหมายเหมือนกันในทั้งสอง เครื่องหมายถูกพิมพ์ควบคู่กับสี ผลลัพธ์จึงอ่านได้โดยไม่ต้องแยกสีแดงจากสีเขียว

จะไม่สนใจความต่างของตัวพิมพ์หรือช่องว่างได้อย่างไร

ติ๊กไม่สนใจตัวพิมพ์เพื่อเปรียบเทียบบรรทัดโดยไม่คำนึงถึงตัวพิมพ์ใหญ่ และไม่สนใจช่องว่างเพื่อข้ามช่องว่างที่ต้นและท้ายบรรทัด และถือช่องว่างต่อเนื่องภายในบรรทัดเป็นช่องว่างเดียว เมื่อติ๊กทั้งสอง “Hello World” และ “hello world” เป็นบรรทัดเดียวกัน

สองข้อความมีขนาดใหญ่ได้เท่าไร

แต่ละข้อความมีได้สูงสุด 5,000 บรรทัดและ 5,000,000 อักขระ ข้อความ 5,000 บรรทัดเทียบกับสำเนาที่เรียงใหม่ของตัวเองประมวลผลได้ในเวลาน้อยกว่าหนึ่งวินาทีบนคอมพิวเตอร์ปัจจุบัน เมื่อรวมเกิน 100,000 อักขระ การเปรียบเทียบจะเริ่มเมื่อคุณกดเปรียบเทียบแทนที่จะเริ่มขณะพิมพ์

unified diff คืออะไร

เป็นรูปแบบข้อความที่ diff และ Git ใช้ เริ่มด้วยบรรทัด --- และ +++ ที่ระบุชื่อสองข้อความ แล้วตามด้วยหนึ่งบล็อกต่อกลุ่มการเปลี่ยนแปลง บล็อกเริ่มด้วยส่วนหัวอย่าง @@ -1,3 +1,3 @@ หมายถึง 3 บรรทัดจากบรรทัดที่ 1 ของต้นฉบับ และ 3 บรรทัดจากบรรทัดที่ 1 ของข้อความที่เปลี่ยนแล้ว และทุกบรรทัดขึ้นต้นด้วยช่องว่าง + หรือ −