เปรียบเทียบข้อความ
วางข้อความต้นฉบับและเวอร์ชันที่แก้ไขเพื่อดูว่าอะไรเปลี่ยน — ทีละบรรทัดหรือทีละคำ รีวิวการแก้สัญญา ติดตามคอนฟิกที่คลาด หรือเปรียบเทียบร่างการบ้านโดยไม่ติดตั้งซอฟต์แวร์ diff
วิธีเปรียบเทียบสองข้อความ
1. วางข้อความต้นฉบับ (เก่า) ในแผงซ้ายหรือแผงแรก
2. วางข้อความที่อัปเดต (ใหม่) ในแผงขวาหรือแผงที่สอง
3. เลือก diff ตามบรรทัดหรือตามคำหากเครื่องมือมีทั้งสอง
4. ตรวจการเพิ่ม การลบ และการเปลี่ยนแปลงที่ไฮไลต์ คัดลอกเวอร์ชันใดก็ได้ตามต้องการ
ตัวอย่าง diff
การเปลี่ยนไฟล์คอนฟิก
เปรียบเทียบชิ้น nginx.conf สองชิ้น: บรรทัดหนึ่งเปลี่ยนจาก "worker_processes 4;" เป็น "worker_processes 8;" — ไฮไลต์ทันทีโดยไม่ดีพลอย
การแก้ไขสัญญา
ข้อความกฎหมาย v3 กับ v4: สามย่อหน้าถูกแก้และหนึ่งประโยคถูกลบ Line diff แสดงว่าข้อใดย้ายก่อนเซ็น
ชิ้นส่วนรีวิวโค้ด
วางฟังก์ชันก่อนและหลังรีแฟกเตอร์ — การตรวจ null ที่เพิ่มและการเปลี่ยนชื่อตัวแปรแสดงเป็นไฮไลต์เขียว/แดง
เมื่อไหร่ควรใช้การเปรียบเทียบข้อความ
• เมื่อได้รับเอกสารที่แก้ไขและต้องการดูทุกการเปลี่ยนแปลงอย่างรวด
• เมื่อเปรียบเทียบคอนฟิกสภาพแวดล้อม JSON หรือ YAML ระหว่าง staging และโปรดักชัน
• เมื่อยืนยันว่าการแปลหรือการเขียนใหม่คงตัวเลขและคำสำคัญ
อัลกอริทึม diff ทำงานอย่างไร (อย่างง่าย)
Diff หาลำดับย่อยร่วมที่ยาวที่สุดระหว่างสองข้อความ แล้วทำเครื่องหมายอย่างอื่นว่าเพิ่มหรือลบ Line-based diff แยกที่อักขระขึ้นบรรทัดก่อน จึงเป็นเหตุที่การห่อย่อหน้าใหม่แสดงการเปลี่ยนแปลงมากแม้คำเหมือนกัน Word-based diff แยกที่ช่องว่างเพื่อความละเอียดในร้อยแก้ว
คำถามที่พบบ่อย
line diff กับ word diff — ควรใช้แบบไหน?
Line diff ดีที่สุดสำหรับโค้ด คอนฟิก และร้อยแก้วหลายบรรทัด Word diff ช่วยเมื่อเปลี่ยนไม่กี่คำในย่อหน้ายาว
ช่องว่างสำคัญหรือไม่?
สำคัญ โดยค่าเริ่มต้นช่องว่างท้ายและบรรทัดว่างต่างกัน บางเครื่องมือมี “ไม่สนใจช่องว่าง” สำหรับการเปรียบเทียบร้อยแก้วที่สะอาดกว่า
เปรียบเทียบไฟล์ใหญ่ได้หรือไม่?
ข้อความใหญ่มากอาจทำให้เบราว์เซอร์ช้า สำหรับล็อกระดับเมกะไบต์ พิจารณาเครื่องมือ diff บรรทัดคำสั่ง
ส่งออก diff ได้หรือไม่?
คัดลอกเอาต์พุตที่ไฮไลต์หรือภาพหน้าจอเอง เครื่องมือนี้เน้นรีวิวภาพเร็ว ไม่ใช่การสร้างไฟล์แพตช์
ใช้กับ JSON หรือ XML ได้หรือไม่?
ได้ ในฐานะข้อความธรรมดา สำหรับการเปรียบเทียบ pretty-print ที่จัดรูปแบบ พิจารณาเครื่องมือจัดรูปแบบ JSON หรือ XML ก่อน