So sánh văn bản (Diff Checker)
So sánh hai đoạn văn bản hoặc mã theo từng dòng. Dòng được thêm, xóa và thay đổi được tô sáng, chi tiết tới từng từ khác nhau.
Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì
Cách dùng So sánh văn bản (Diff Checker)
- 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, hoặc mở hai tệp.
- Kết quả so sánh cập nhật khi bạn gõ. Chọn chế độ xem Song song hoặc Hợp nhất.
- Đánh dấu Bỏ qua khoảng trắng, Bỏ qua hoa thường hoặc Bỏ qua dòng trống để ẩn nhiễu như thụt lề lại.
- Dùng Ẩn phần không đổi để tập trung vào thay đổi với ba dòng ngữ cảnh xung quanh mỗi thay đổi.
- Bấm Sao chép dạng patch hoặc Tải xuống .diff để lấy unified diff chuẩn có thể áp dụng bằng
git applyhoặcpatch.
Công cụ so sánh này hoạt động thế nào
Công cụ chia cả hai đầu vào thành các dòng và chạy thuật toán Myers, cùng thuật toán O(ND) được git diff và GNU diff sử dụng. Nó tìm chuỗi thêm và xóa ngắn nhất biến văn bản gốc thành văn bản đã sửa, nên kết quả cho thấy ít dòng thay đổi nhất có thể. Các dòng giống nhau ở đầu và cuối được bỏ qua trước, giúp so sánh tệp hàng nghìn dòng gần như tức thì.
Khi một dòng bị xóa và một dòng được thêm nằm cạnh nhau, chúng được ghép thành một dòng đã sửa và được so sánh lại theo từng từ. Những từ thực sự thay đổi được tô sáng đậm hơn, nên một biến được đổi tên hay một con số bị sửa sẽ nổi bật trong một dòng dài.
Xem song song và xem hợp nhất
Song song đặt bản gốc bên trái và bản mới bên phải, kèm số dòng cho cả hai. Đây là chế độ dễ nhất để review văn xuôi, tệp cấu hình và thay đổi mã ngắn. Chế độ Hợp nhất xen kẽ dòng bị xóa (-) và dòng được thêm (+) trong một cột, định dạng được dùng bởi công cụ review code và tệp patch.
Định dạng unified diff (patch)
Patch được xuất theo định dạng diff -u: phần đầu ---/+++, tiếp theo là các hunk bắt đầu bằng @@ -l,s +l,s @@, trong đó l là số dòng đầu tiên và s là số dòng của hunk trong mỗi tệp. Mỗi hunk có ba dòng ngữ cảnh không đổi, nên có thể áp dụng bằng patch -p0 hoặc git apply ngay cả khi các dòng lân cận đã bị dịch chuyển.
Khi nào dùng các tùy chọn bỏ qua
- Bỏ qua khoảng trắng coi hai dòng là bằng nhau nếu chúng chỉ khác nhau về dấu cách hoặc tab. Dùng sau khi thụt lề lại mã hoặc chuyển tab thành dấu cách.
- Bỏ qua hoa thường tiện cho SQL, HTML và tệp log, nơi chữ hoa chữ thường không quan trọng.
- Bỏ qua dòng trống ẩn các dòng chỉ được thêm hoặc xóa để tạo khoảng cách.