Giải quyết một xung đột hợp nhất
Tiếp theo, hãy hợp nhất các nhánh issue2 và issue3 mà chúng ta đã tạo trong bước cuối cùng vào nhánh chính.
Đầu tiên, chuyển sang main và hợp nhất issue2 bằng cách hợp nhất chuyển tiếp nhanh.
$ git checkout main
Switched to branch 'main'
$ git merge issue2
Updating b2b23c4..8f7aa27
Fast-forward
myfile.txt | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
Đây hiện là lịch sử:
Tiếp theo, hãy thử hợp nhất issue3 vào main.
$ git merge issue3
Auto-merging myfile.txt
CONFLICT (content): Merge conflict in myfile.txt
Automatic merge failed; fix conflicts and then commit the result.
Trong trường hợp này, Git đã xác định xung đột do tệp myfile.txt có nội dung khác trên cùng một dòng trên mỗi nhánh và không thể tự động hợp nhất issue3 với main.
Tệp myfile.txt bây giờ sẽ giống như thế này:
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Bạn sẽ tìm thấy các điểm đánh dấu được Git thêm vào tệp myfile.txt với thông tin liên quan đến xung đột. Chúng ta phải khắc phục xung đột theo cách thủ công, như được hiển thị bên dưới.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of a remote repository
Khi xung đột được giải quyết, hãy cam kết thay đổi.
$ git add myfile.txt
$ git commit -m "merge issue3 branch"
# On branch main
nothing to commit (working directory clean)
Và lịch sử trông sẽ như thế này:
Bạn có thể thấy rằng một cam kết hợp nhất mới đã được tạo do giải quyết xung đột. Và nhánh chính hiện đang trỏ đến cam kết hợp nhất mới nhất. Đây là một hợp nhất không chuyển tiếp nhanh.