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
>>>>>>> featureNhiệ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 --abortThử thách
Trung bìnhThư 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ử
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
4Kiểm tra các thay đổi
Git DiffSo sánh các thay đổi đã đưa vào vùng chờGit ShowÔn tập: Công việc của thám tử3Theo dõi thay đổi
Khu vực stagingGit AddGit CommitChỉnh sửa tệp đã được theo dõiGit LogÔn tập: các commit đầu tiên6Dự án trang web công thức
Tổng quan dự ánKhởi tạo và bỏ quaTự luyện tập: Playground Terminal