Khi làm việc với Git, conflict thường xảy ra khi hai hoặc nhiều người cùng chỉnh sửa cùng một file và commit lên repository. Trong trường hợp này, Git không thể tự động gộp các thay đổi và bạn cần phải giải quyết conflict bằng cách thực hiện các bước sau:
Bước 1: Kiểm tra tình trạng conflict
Sử dụng lệnh git status
để kiểm tra xem file nào bị conflict. Lệnh này sẽ liệt kê tất cả các file đã được chỉnh sửa nhưng chưa được commit hoặc các file bị conflict.
$ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") Unmerged paths: (use "git add <file>..." to mark resolution) both modified: file.txt no changes added to commit (use "git add" and/or "git commit -a")
Trong ví dụ trên, file file.txt
bị conflict và cần được giải quyết.
Bước 2: Xem thay đổi trong file bị conflict
Sử dụng lệnh git diff
để xem các thay đổi trong file bị conflict. Lệnh này sẽ hiển thị các phần bị conflict và các thay đổi được thực hiện bởi các commit khác nhau.
$ git diff file.txt diff --cc file.txt index 1234567,89abcdef..0123456 --- a/file.txt +++ b/file.txt @@@ -1,3 -1,3 +1,5 @@@ This is some text. - There is some more text here. ++<<<<<<< HEAD + This is a new line added by the current commit. ++======= + There is some more text here. + This is a new line added by the other commit. ++>>>>>>> other-branch
Trong ví dụ trên, các phần bị conflict được bao bọc bởi <<<<<<< HEAD
, =======
và >>>>>>> other-branch
. Các phần trên cùng (HEAD
) là thay đổi từ commit hiện tại và các phần dưới (other-branch
) là thay đổi từ commit khác.
Bước 3: Chỉnh sửa file để giải quyết conflict
Mở file bị conflict và tìm các phần bị conflict. Chỉnh sửa các phần này để giải quyết conflict. Trong ví dụ trên, bạn có thể giải quyết conflict bằng cách giữ lại một số dòng và loại bỏ các phần bị conflict.
This is some text. There is some more text here. This is a new line added by the current commit. There is some more text here. This is a new
Bước 4: Commit thay đổi giải quyết conflict
Sau khi chỉnh sửa các phần bị conflict, bạn cần phải commit thay đổi để giải quyết conflict. Sử dụng lệnh git add
để thêm file đã chỉnh sửa vào staging area và sau đó sử dụng lệnh git commit
để tạo commit giải quyết conflict.
$ git add file.txt $ git commit -m "Resolve conflict in file.txt"
Nếu có nhiều file bị conflict, bạn cần phải giải quyết từng file và tạo commit cho từng file.
Kết luận
Đó là cách giải quyết conflict trong Git. Khi làm việc với Git, conflict là điều không thể tránh khỏi. Tuy nhiên, bằng cách sử dụng các bước trên, bạn có thể giải quyết conflict một cách dễ dàng và hiệu quả.