So sánh văn bản (diff)

So sánh hai văn bản theo dòng, theo từ hoặc theo ký tự. Hiển thị gộp chung hoặc hai cột song song, bỏ qua hoa thường hay khoảng trắng, xuất bản vá unified diff.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

So sánh văn bản là gì?

So sánh văn bản gốc với văn bản đã sửa và tô sáng những gì được thêm và bị xóa. Bạn có thể so sánh theo dòng, từ hoặc ký tự, xem kết quả gộp chung hoặc hai cột song song, bỏ qua khác biệt về hoa thường và khoảng trắng, và xuất unified diff (bản vá).

Cách sử dụng So sánh văn bản

  1. Dán văn bản gốc vào bên trái và văn bản đã sửa vào bên phải.
  2. Chọn So sánh theo dòng, từ hoặc ký tự, và Cách hiển thị (hai cột song song chỉ có ở chế độ dòng).
  3. Tích Bỏ qua hoa thường hoặc Bỏ qua thay đổi khoảng trắng nếu những khác biệt đó không quan trọng.
  4. Đọc phần tóm tắt số đơn vị được thêm và bị xóa, và mở Unified diff (bản vá) để sao chép hoặc tải bản vá xuống.

Ví dụ

Đầu vào
Original: a / b / c  →  Changed: a / B / c / d (one item per line)
Đầu ra
2 line(s) added · 1 line(s) removed
- b
+ B
+ d

Khi nào nên dùng So sánh văn bản

Dùng công cụ để rà soát chỉnh sửa trong hợp đồng, bài viết, tệp cấu hình hay đoạn mã, hoặc kiểm tra những gì thay đổi giữa hai phiên bản của một danh sách. Với cả kho mã hoặc tệp nhị phân, hãy dùng Git hoặc công cụ diff trên máy tính. Cả hai văn bản đều ở lại trong trình duyệt của bạn.

So sánh văn bản hoạt động như thế nào

Việc so sánh dùng thư viện diff (jsdiff), triển khai thuật toán khác biệt O(ND) của Myers để tìm chuỗi chỉnh sửa ngắn nhất giữa hai dãy token. Chế độ dòng tách token theo dòng (có thể bỏ qua hoa thường và khoảng trắng đầu/cuối), chế độ từ theo từ và khoảng trắng, chế độ ký tự theo ký tự. Phần bị xóa hiển thị màu đỏ có gạch ngang, phần được thêm màu xanh lá. Chế độ hai cột ghép các khối dòng bị xóa và được thêm thành từng hàng. Bản vá được tạo bằng createTwoFilesPatch theo định dạng unified với 3 dòng ngữ cảnh.

Các Trường Hợp Sử Dụng Phổ Biến

  • Rà soát thay đổi giữa hai phiên bản của một tài liệu
  • So sánh tệp cấu hình hoặc biến môi trường
  • Kiểm tra đồng nghiệp đã sửa gì trong văn bản được dán
  • Tạo tệp bản vá từ hai đoạn mã
  • Tìm những khác biệt nhỏ trong danh sách dài

Câu Hỏi Thường Gặp

Công cụ dùng thuật toán nào?

Thuật toán diff của Myers thông qua thư viện jsdiff – cùng họ thuật toán mà Git và GNU diff sử dụng.

Vì sao một dòng bị sửa lại hiển thị là bị xóa và được thêm?

Chế độ dòng coi mỗi dòng là một đơn vị, nên bất kỳ thay đổi nào cũng biến nó thành dòng khác. Hãy chuyển sang chế độ từ hoặc ký tự để thấy chính xác phần nào thay đổi bên trong.

Văn bản của tôi có bị tải lên không?

Không. Cả hai văn bản được so sánh ngay trong trình duyệt của bạn.

Có áp dụng bản vá bằng Git được không?

Unified diff dùng tên tệp original.txt và changed.txt; bạn có thể áp dụng bằng patch hoặc git apply sau khi chỉnh lại tên tệp.

Khám phá thêm danh mục