Menu
CoddyTech

Xung đột merge

Thuộc phần Kiểm soát phiên bản trong hành trình Terminal của Coddy. Bài học 37 trên 58.

Nếu cả hai nhánh đều thay đổi cùng các dòng trong cùng một tệp, Git không thể đoán nên giữ phiên bản nào. Git tạm dừng quá trình merge và yêu cầu bạn quyết định.

Tệp đang có xung đột sẽ có các dấu đánh dấu đặc biệt hiển thị cả hai phiên bản:

<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature

Nhiệm vụ của bạn là tự chỉnh sửa tệp: chọn một phiên bản, kết hợp chúng hoặc viết nội dung mới. Sau đó, xóa tất cả dấu phân định xung đột (các dòng <<<, ===, >>>).

Khi tệp đã đúng như mong muốn, hãy đưa tệp vào staging rồi hoàn tất việc hợp nhất bằng một commit khác:

git add notes.txt
git commit -m "Resolve merge conflict in notes"

Nếu đổi ý giữa chừng, bạn có thể hủy toàn bộ quá trình và quay lại trạng thái trước khi merge:

git merge --abort
challenge icon

Thử thách

Trung bình

Thư mục chứa notes.txt với dòng hello.

Khởi tạo repository và commit tệp ban đầu. Tạo nhánh mới từ nhánh hiện tại tên alt, đổi nội dung trong notes.txt thành hi from alt, rồi commit.

Chuyển lại sang main, đổi nội dung trong notes.txt thành hi from main, rồi commit.

Thử merge alt vào main. Việc merge sẽ gây xung đột. Hủy thao tác đó bằng git merge --abort, rồi in nội dung của notes.txt bằng cat để xác nhận tệp đã trở về phiên bản của main.

Tự làm thử

Terminal
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiểm soát phiên bản

Tự luyện tập: Playground Terminal