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.