Công Cụ Này Là Gì?
Một công cụ diff (khác biệt) so sánh hai văn bản và hiển thị tập hợp thay đổi tối thiểu biến văn bản này thành văn bản kia. Đây là cách các hệ thống quản lý phiên bản như Git hiển thị thay đổi mã nguồn, và cũng hữu ích tương tự khi so sánh file cấu hình, hợp đồng, bài viết hoặc bất kỳ hai phiên bản nào của bất cứ thứ gì.
Công cụ này so sánh theo từng dòng dùng cùng họ thuật toán nền tảng (dãy con chung dài nhất) như các tiện ích diff cổ điển, nên kết quả đọc giống một lượt review code quen thuộc: + cho dòng thêm, − cho dòng xóa.
Tại Sao Nên Dùng?
- Xem chính xác điều gì đã thay đổi giữa hai phiên bản thay vì tự nhìn đối chiếu.
- Kết quả kiểu git quen thuộc: thêm màu xanh lá, xóa màu đỏ, dòng ngữ cảnh ở giữa.
- Số lượng tóm tắt các dòng thêm và xóa nhìn thoáng qua là biết.
- Hoạt động với mọi loại văn bản — mã nguồn, cấu hình, tài liệu, danh sách.
- Riêng tư: cả hai văn bản ở lại trong trình duyệt của bạn, không có gì được tải lên.
Cách Sử Dụng
- Dán văn bản gốc vào ô bên trái.
- Dán phiên bản đã thay đổi vào ô bên phải.
- Nhấn "Compare".
- Đọc kết quả: dòng xanh lá là dòng thêm, dòng đỏ là dòng xóa, dòng thường là không đổi.
Ví dụ
Đầu vào
Original:
line one
line two
line three
Changed:
line one
line 2
line threeĐầu ra
line one
− line two
+ line 2
line threeDòng giữa đã thay đổi, được diff hiển thị dưới dạng xóa dòng cũ cộng thêm dòng mới.
Các trường hợp sử dụng phổ biến
- Xem xét một đoạn văn được AI viết lại: dán bản gốc và bản của AI để xem chính xác câu nào đã thay đổi, thay vì đọc lại toàn bộ để phát hiện chỉnh sửa.
- So sánh hai bản nháp hợp đồng: các đánh dấu sửa đổi pháp lý thường dễ quét hơn dưới dạng diff theo dòng so với theo dõi thay đổi khi tài liệu bị định dạng lại giữa các phiên bản.
- Kiểm tra file cấu hình sau khi triển khai: dán trước/sau của một file .env hoặc YAML để xác nhận chỉ những dòng dự định thay đổi.
- So sánh các bản sửa văn bản dịch: xem những dòng nào một biên dịch viên hoặc biên tập viên thực sự đã chỉnh giữa các bản nháp.
Những hạn chế cần biết
Đây là diff cấp độ dòng, không phải diff cấp độ từ — nếu bạn di chuyển một đoạn văn từ đầu tài liệu xuống cuối mà không thay đổi nội dung, nó hiển thị dưới dạng một lượt xóa toàn bộ cộng một lượt thêm toàn bộ, không phải chú thích "đã di chuyển". Với văn xuôi nhiều đoạn văn nơi chỉ vài từ thay đổi mỗi câu, một công cụ diff cấp độ từ sẽ đánh dấu ít văn bản hơn, nhưng cấp độ dòng là chuẩn cho mã nguồn, cấu hình và tài liệu có cấu trúc, và là điều công cụ này tập trung vào.
Cách thuật toán so sánh hoạt động
Công cụ tìm dãy con chung dài nhất (LCS) giữa hai văn bản — tập hợp lớn nhất các dòng xuất hiện theo cùng thứ tự tương đối trong cả hai phiên bản, kể cả khi có dòng khác được chèn hoặc xóa giữa chúng. Mọi thứ trong dãy con chung đó được hiển thị làm ngữ cảnh không đổi; mọi thứ khác được phân loại là bị xóa (chỉ có trong bản gốc) hoặc được thêm (chỉ có trong bản mới). Đây là thuật toán cốt lõi tương tự đứng sau tiện ích diff của Unix và so sánh theo dòng của Git, đó là lý do định dạng kết quả trông quen thuộc ngay lập tức nếu bạn từng xem xét một pull request.
Một hệ quả thực tế: nếu một dòng bị lặp lại ở nơi khác trong tài liệu (cùng một văn bản chính xác xuất hiện hai lần), thuật toán khớp nó với bất kỳ lần xuất hiện nào giữ cho diff tổng thể nhỏ nhất — đôi khi tạo ra một cặp ghép hơi khác với trực giác của bạn, dù số lượng dòng thêm/xóa cuối cùng luôn chính xác bất kể bản trùng nào được khớp với bản nào.
Câu Hỏi Thường Gặp
Công cụ so sánh theo từng từ hay từng dòng?
Theo từng dòng, giống git diff. Một dòng đã thay đổi xuất hiện dưới dạng một dòng xóa cộng một dòng thêm. Diff cấp độ dòng là chuẩn cho mã nguồn và cấu hình và vẫn dễ đọc với văn bản lớn.
Tại sao một thay đổi nhỏ lại hiển thị cả dòng thành đã thay đổi?
Vì đơn vị so sánh là dòng — bất kỳ thay đổi nào trong đó đánh dấu cả dòng. Chia các đoạn văn dài thành các dòng ngắn hơn nếu bạn cần độ chi tiết mịn hơn.
Khoảng trắng có quan trọng không?
Có. Các dòng phải khớp chính xác, nên một khoảng trắng cuối dòng hoặc thụt lề khác nhau khiến các dòng được tính là khác nhau. Đây là cố ý — khác biệt khoảng trắng là khác biệt thực sự trong mã nguồn và cấu hình.
Có giới hạn kích thước không?
Không có giới hạn cứng, nhưng văn bản rất lớn (hàng chục nghìn dòng) có thể mất một chút thời gian vì việc so sánh chạy cục bộ trên thiết bị của bạn.
Văn bản của tôi có được tải lên để so sánh không?
Không. Thuật toán diff chạy hoàn toàn trong trình duyệt của bạn bằng JavaScript. Cả hai văn bản ở lại trên thiết bị của bạn — an toàn cho hợp đồng, tài liệu nội bộ và mã nguồn chưa phát hành.