5 phút đọc

Merge Conflict

Merge Conflict

Conflict nghe đáng sợ nhưng thực ra rất logic: Git chỉ đang nhờ bạn quyết định khi nó không tự chọn được.

1. Vì sao có conflict?

Conflict merge conflict xảy ra khi hai branch cùng sửa một dòng (hoặc vùng dòng) trong cùng một file theo hai cách khác nhau. Git tự gộp được phần lớn, nhưng chỗ này nó không thể tự quyết nên dừng lại và giao cho bạn.

2. Đọc và giải quyết

Git chèn markers vào file. Phần trên là branch hiện tại (HEAD), phần dưới là branch đang gộp vào:

<<<<<<< HEAD
const greeting = "Xin chao";
=======
const greeting = "Hello";
>>>>>>> feature

Bạn sửa thành nội dung đúng, xóa cả ba dòng dấu, rồi:

git add src/greeting.js     # đánh dấu đã giải quyết
git merge --continue        # hoàn tất merge
git merge --abort           # hoặc hủy, quay về trước khi merge

Cách nhớ nhanh

Conflict = hai branch sửa cùng một chỗ. Sửa file → xóa markersgit addgit merge --continue. Rối thì git merge --abort.