Lệnh diff3 trong linux với các ví dụ dễ hiểu

Lệnh diff3 trong linux giúp bạn so sánh ba phiên bản khác nhau của cùng một tệp văn bản, tìm ra sự khác biệt giữa chúng. Nó rất hữu ích khi hợp nhất các thay đổi từ nhiều người đóng góp vào một tệp duy nhất. Kết quả so sánh hiển thị các đoạn mã khác nhau, giúp bạn dễ dàng giải quyết xung đột và tạo ra phiên bản cuối cùng.

Lệnh diff3 trong linux là gì?

Lệnh command diff3 in linux là một công cụ mạnh mẽ để so sánh ba phiên bản khác nhau của cùng một tệp văn bản, giúp bạn hợp nhất các thay đổi từ nhiều nguồn. Nó phân tích sự khác biệt giữa ba tệp và tạo ra một bản vá chứa các thay đổi cần thiết để hợp nhất chúng lại với nhau một cách hiệu quả. Diff3 đặc biệt hữu ích khi làm việc với các dự án có nhiều nhánh phát triển song song, nơi các thay đổi có thể xung đột với nhau. Sử dụng diff3 giúp giải quyết xung đột hợp nhất một cách thủ công, đảm bảo tính nhất quán của mã nguồn. Kết quả của lệnh diff3 thường được sử dụng để tạo ra một phiên bản hợp nhất cuối cùng, kết hợp các thay đổi từ cả ba tệp đầu vào.

Tìm hiểu Mục đích và Cú pháp của Lệnh diff3

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh diff3 trong Linux.

Lệnh diff3 được dùng để so sánh ba tệp và xác định sự khác biệt giữa chúng.

Cú pháp của lệnh diff3 như sau:

diff3 [options] file1 file2 file3

Ở đây, file1, file2file3 là ba tệp bạn muốn so sánh với nhau.

Một số tùy chọn phổ biến cho lệnh diff3 bao gồm:

  • -E: Xem tất cả các tệp là văn bản và so sánh chúng theo từng dòng.
  • -a: Xem tất cả các tệp là văn bản, ngay cả khi chúng không chứa văn bản.
  • -L label: Sử dụng nhãn đã cho thay vì tên tệp gốc.
  • -m: Hiển thị đầu ra đã hợp nhất, làm nổi bật các xung đột.

Để hiểu rõ hơn về mục đích của lệnh diff3, hãy xem xét một tình huống cụ thể.

Giả sử bạn có ba tệp với một số thay đổi xung đột, bạn có thể dùng diff3 để hợp nhất và giải quyết các xung đột này.

Hợp Nhất Các File Xung Đột Bằng diff3

Trong bước này, bạn sẽ học cách sử dụng lệnh diff3 để hợp nhất các file đang bị xung đột.

Chúng ta hãy tạo ba file với một vài thay đổi gây ra xung đột nhé.

$ cd ~/project
$ echo "Line 1" > file1.txt
$ echo "Line 2" >> file1.txt
$ echo "Line 3" >> file1.txt

$ echo "Line 1" > file2.txt
$ echo "Line 2 - Modified" >> file2.txt
$ echo "Line 4" >> file2.txt

$ echo "Line 1" > file3.txt
$ echo "Line 2 - Another Modification" >> file3.txt
$ echo "Line 3" >> file3.txt

Bây giờ, chúng ta có thể sử dụng lệnh diff3 để hợp nhất các file này lại với nhau.

$ diff3 file1.txt file2.txt file3.txt
=======
Line 1
Line 2 - Another Modification
Line 3
-------
Line 1
Line 2 - Modified
Line 4

Lệnh diff3 sẽ xác định các thay đổi xung đột và hiển thị chúng trong một đầu ra đã được hợp nhất.

Các dòng bắt đầu bằng =======------- cho biết các phần đang bị xung đột.

Để giải quyết các xung đột, bạn có thể chỉnh sửa thủ công các file và chọn các thay đổi mong muốn.

Ví dụ về đầu ra:

Line 1
Line 2 - Modified
Line 3

Trong ví dụ này, chúng ta đã chọn giữ lại phiên bản đã sửa đổi của "Line 2" từ file2.txt.

Giải quyết xung đột trong hợp nhất ba chiều

Trong bước này, bạn sẽ học cách giải quyết xung đột khi hợp nhất ba chiều bằng lệnh diff3.

Chúng ta tiếp tục với ví dụ trước, nơi có ba file với các thay đổi xung đột.

$ cd ~/project
$ cat file1.txt
Line 1
Line 2
Line 3

$ cat file2.txt
Line 1
Line 2 - Modified
Line 4

$ cat file3.txt
Line 1
Line 2 - Another Modification
Line 3

Để giải quyết xung đột, ta dùng lệnh diff3 với tùy chọn -m để hiển thị kết quả hợp nhất kèm dấu xung đột.

$ diff3 -m file1.txt file2.txt file3.txt
Line 1
<<<<<<< file1.txt
Line 2
=======
Line 2 - Another Modification
>>>>>>> file3.txt
Line 3
Line 4

Các dấu xung đột <<<<<<< file1.txt, =======>>>>>>> file3.txt chỉ ra các phần xung đột. Bây giờ bạn có thể chỉnh sửa file thủ công và chọn các thay đổi mong muốn.

Hãy giải quyết xung đột bằng cách giữ lại phiên bản đã sửa đổi của "Line 2" từ file3.txt.

$ cat resolved.txt
Line 1
Line 2 - Another Modification
Line 3
Line 4

Ví dụ về đầu ra:

Line 1
Line 2 - Another Modification
Line 3
Line 4

Giờ đây, các xung đột đã được giải quyết và file hợp nhất resolved.txt chứa các thay đổi mong muốn.

Kết luận cho linux diff3 command

Tóm lại, lệnh linux diff3 command là một công cụ mạnh mẽ để giải quyết xung đột khi nhiều người cùng chỉnh sửa một file. Nó giúp bạn so sánh ba phiên bản khác nhau và tìm ra những điểm khác biệt giữa chúng một cách chi tiết. Việc hiểu rõ cách sử dụng lệnh này sẽ giúp bạn tiết kiệm thời gian và công sức trong quá trình làm việc nhóm. Hãy thử nghiệm với các tùy chọn khác nhau của lệnh để làm quen với cách nó hoạt động. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cơ bản để bắt đầu sử dụng linux diff3 command một cách hiệu quả. Chúc bạn thành công trong việc quản lý các phiên bản file của mình! Đừng ngần ngại tìm hiểu thêm các tài liệu tham khảo để nâng cao kỹ năng sử dụng lệnh này nhé.

Last Updated : 17/10/2025