Chuyển đến nội dung

diff · + thêm · − xóa

So sánh văn bản

So sánh “red, green, blue” với “red, yellow, blue” theo từng dòng cho ra 1 dòng thêm vào, 1 dòng bị xóa và 2 dòng không đổi. Dán hai văn bản để xem mọi khác biệt.

Mỗi dòng thêm vào được đánh dấu + và mỗi dòng bị xóa được đánh dấu −, ngoài việc được tô màu, và các ký tự thay đổi trong một dòng bị thay thế được tô sáng. Văn bản nhỏ được so sánh ngay khi bạn gõ; văn bản không bao giờ rời khỏi thẻ này.

Scanned by NortonTM Safe Web

Tóm tắt nhanh

Giá
Không mất phí
Tài khoản
Không cần
Tải lên
Không áp dụng — cả hai văn bản ở lại trong thẻ của bạn
Phương pháp
Dãy con chung dài nhất của các dòng, với ký tự thay đổi được tô sáng
Đầu ra
Các dòng được tô màu và đánh dấu, hoặc diff thống nhất với 3 dòng ngữ cảnh
Giới hạn kích thước
5,000 dòng và 5,000,000 ký tự mỗi văn bản

Một phép so sánh mẫu và tác dụng của các tùy chọn

Các bảng đến từ cùng mã với công cụ. Bảng đầu so sánh hai văn bản ba dòng; bảng thứ hai cho thấy các tùy chọn thay đổi kết quả thế nào với một cặp dòng.

“red, green, blue” so với “red, yellow, blue”, mỗi mục một dòng
DấuDòng
=red
−green
+yellow
=blue
“Hello World” so với “hello world” (hai dấu cách)
Thiết lậpDòng thêm vàoDòng bị xóa
Chính xác11
Bỏ qua hoa thường11
Bỏ qua khoảng trắng11
Bỏ qua hoa thường và khoảng trắng00

Cách so sánh hai văn bản

1

Dán hai văn bản

Đặt văn bản cũ vào ô Bản gốc và văn bản mới vào ô Bản đã sửa. Đã có sẵn hai mẫu ngắn. Hoán đổi sẽ đổi chỗ hai ô, và Xóa cả hai sẽ làm trống chúng.

2

Chọn điều gì được coi là khác biệt

Đánh dấu Bỏ qua hoa thường để coi “Hello” và “hello” là cùng một dòng, và Bỏ qua khoảng trắng để bỏ qua dấu cách ở hai đầu dòng và dấu cách lặp bên trong. Chỉ hiện thay đổi sẽ ẩn các dòng không đổi, giữ lại 3 dòng quanh mỗi thay đổi.

3

Đọc hoặc sao chép khác biệt

Các dòng đánh dấu − chỉ có ở Bản gốc, các dòng đánh dấu + chỉ có ở Bản đã sửa. Sao chép bản diff thống nhất để dán vào một tin nhắn hoặc một bản vá, hoặc tải xuống thành tệp .diff.

Cách so sánh hoạt động

Hai văn bản được tách thành các dòng, và công cụ tìm dãy con chung dài nhất của các dòng: tập lớn nhất các dòng xuất hiện ở cả hai văn bản theo cùng thứ tự. Mọi dòng nằm ngoài tập đó được báo là bị xóa (chỉ có ở bản gốc) hoặc thêm vào (chỉ có ở bản đã sửa), nên bản diff có ít dòng thay đổi nhất có thể. Khi một dòng bị xóa được theo ngay sau bởi một dòng thêm vào, các ký tự khác nhau giữa hai dòng được tô sáng.

Diff làm việc theo dòng vì dòng là đơn vị mà mã nguồn, tệp cấu hình và danh sách thay đổi, và phép so sánh theo dòng vẫn nhanh với hàng nghìn dòng. Một dòng được di chuyển hiện một lần là bị xóa và một lần là thêm vào; một từ bị đổi hiện thành một dòng bị thay thế, với các ký tự được tô sáng. Ký tự xuống dòng được chuẩn hóa, nên một tệp lưu với ngắt dòng của Windows khớp với cùng tệp đó lưu với ngắt dòng của Unix. Mỗi văn bản có thể có tới 5,000 dòng và 5,000,000 ký tự. Đầu ra diff thống nhất dùng định dạng phổ biến: phần đầu --- và +++, rồi các khối @@ với 3 dòng ngữ cảnh.

Câu hỏi về so sánh văn bản

Diff văn bản quyết định điều gì đã thay đổi thế nào?

Nó tìm dãy con chung dài nhất của các dòng, nghĩa là nhiều dòng nhất mà cả hai văn bản có chung theo cùng thứ tự. Các dòng nằm ngoài đó được đánh dấu − nếu chỉ bản gốc có và + nếu chỉ bản đã sửa có. “red, green, blue” so với “red, yellow, blue” giữ red và blue, xóa green và thêm yellow.

Vì sao việc so sánh làm theo dòng chứ không theo từ?

Dòng là cách mã nguồn, nhật ký, danh sách và tệp cấu hình được tổ chức, và kết quả theo dòng đủ ngắn để đọc. Với một dòng bị thay thế, các ký tự khác nhau được tô sáng bên trong nó, nên một thay đổi một từ trong câu dài rất dễ nhận ra.

Màu sắc và các dấu + và − nghĩa là gì?

Một dòng xanh lá đánh dấu + đã được thêm vào ở Bản đã sửa. Một dòng đỏ đánh dấu − đã bị xóa khỏi Bản gốc. Các dòng không đánh dấu giống nhau ở cả hai. Các dấu được in ra bên cạnh màu sắc, nên kết quả đọc được mà không cần phân biệt đỏ với xanh lá.

Làm sao bỏ qua khác biệt về hoa thường hay dấu cách?

Đánh dấu Bỏ qua hoa thường để so sánh các dòng mà không để ý chữ hoa, và Bỏ qua khoảng trắng để bỏ qua dấu cách ở đầu và cuối dòng và coi mọi chuỗi dấu cách bên trong là một dấu cách. Khi đánh dấu cả hai, “Hello World” và “hello world” là cùng một dòng.

Hai văn bản có thể lớn đến mức nào?

Mỗi văn bản có thể có tới 5,000 dòng và 5,000,000 ký tự. Một văn bản 5,000 dòng được so với một bản sao đã đảo thứ tự của chính nó được xử lý trong chưa đầy một giây trên máy tính hiện nay. Trên 100,000 ký tự tổng cộng, việc so sánh bắt đầu khi bạn nhấn So sánh thay vì khi bạn gõ.

Diff thống nhất là gì?

Đó là định dạng văn bản mà diff và Git dùng. Nó bắt đầu bằng một dòng --- và một dòng +++ gọi tên hai văn bản, rồi mỗi nhóm thay đổi một khối. Một khối bắt đầu bằng phần đầu như @@ -1,3 +1,3 @@, nghĩa là 3 dòng từ dòng 1 của bản gốc và 3 dòng từ dòng 1 của bản đã sửa, và mỗi dòng bắt đầu bằng dấu cách, + hoặc −.