Cách so sánh văn bản và tìm các khác biệt
Tìm những gì đã thay đổi giữa hai phiên bản của một tài liệu, một tệp cấu hình hoặc một đoạn mã là một nhiệm vụ phổ biến. Đọc cả hai phiên bản và phát hiện các khác biệt bằng mắt là chậm và không đáng tin cậy — đặc biệt với văn bản dài. Một trình so sánh (diff) làm điều đó tức thì và làm nổi bật mỗi thay đổi.
Cách so sánh hai văn bản
- Dán cả hai phiên bản — nhập văn bản gốc bên trái và văn bản đã sửa đổi bên phải.
- Xem các điểm tô sáng — các dòng được thêm vào màu xanh lá, các dòng bị xóa màu đỏ. Các dòng đã sửa đổi hiển thị cả phiên bản cũ và mới.
- Xuất hoặc sao chép — sao chép kết quả diff hoặc tải xuống một báo cáo.
Đọc một diff
Đầu ra của một diff sử dụng mã màu đơn giản:
- Xanh lá (đã thêm) — các dòng có trong phiên bản mới nhưng không có trong phiên bản cũ
- Đỏ (đã xóa) — các dòng có trong phiên bản cũ nhưng đã biến mất khỏi phiên bản mới
- Không thay đổi — các dòng giống hệt nhau trong cả hai phiên bản
Đó là cùng quy ước được sử dụng bởi Git, GitHub và tất cả các hệ thống kiểm soát phiên bản lớn.
Khi nào diff hữu ích
- Đánh giá mã — so sánh các sửa đổi của bạn với bản gốc trước khi commit để xem chính xác những gì bạn đã thay đổi
- Sửa đổi tài liệu — tìm những gì đã thay đổi giữa hai phiên bản của một hợp đồng, một bài viết hoặc một chính sách
- Gỡ lỗi cấu hình — so sánh một tệp cấu hình hoạt động với một tệp bị hỏng để tìm sự khác biệt
- Xác thực dữ liệu — kiểm tra xem hai bản xuất dữ liệu có giống hệt nhau không, hoặc tìm nơi chúng phân kỳ
- Xung đột hợp nhất — hiểu cả hai phía của một xung đột trước khi giải quyết nó
Mẹo
- Dán văn bản sạch — loại bỏ tiêu đề, chân trang hoặc metadata mà bạn không muốn so sánh. Tiếng ồn làm cho các khác biệt thực sự khó phát hiện hơn.
- Sử dụng chế độ xem cạnh nhau — xem cả hai phiên bản với các số dòng được căn chỉnh giúp các khác biệt dễ theo dõi hơn so với chế độ xem nội tuyến.
- Theo dõi khoảng trắng — đôi khi, một văn bản « giống hệt » có những khác biệt vô hình như khoảng trắng cuối dòng, kết thúc dòng khác nhau (LF so với CRLF), hoặc tab thay vì khoảng trắng. Diff bắt được chúng.
- Hoạt động ngoại tuyến — khi trang được tải, các so sánh chạy cục bộ, không cần Internet.
Câu hỏi thường gặp
Diff có so sánh từng ký tự không?
Nó so sánh từng dòng, cùng cách tiếp cận như Git và hầu hết các công cụ diff chuyên nghiệp. Nếu một ký tự duy nhất thay đổi trên một dòng, toàn bộ dòng được tô sáng là đã thay đổi.
Có giới hạn kích thước không?
Không có giới hạn cứng, nhưng các văn bản rất lớn (hơn 10.000 dòng) có thể mất một chút thời gian để xử lý vì việc so sánh chạy hoàn toàn trong trình duyệt của bạn.
Tôi có thể so sánh các tệp mã không?
Có. Diff hoạt động với bất kỳ văn bản nào, bao gồm mã nguồn. Tô màu cú pháp giúp đọc dễ dàng hơn các diff mã.
Văn bản của tôi có được gửi đến máy chủ không?
Không. Việc so sánh diễn ra trong trình duyệt của bạn. Văn bản của bạn không bao giờ rời khỏi thiết bị của bạn.