Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Lần đầu thấy dòng chữ "CONFLICT (content): Merge conflict in..." nhiều người nghĩ mình đã làm hỏng cả dự án. Thực ra xung đột là chuyện hết sức bình thường khi nhiều người cùng sửa một đoạn code. Bài này giúp bạn hiểu nguyên nhân và xử lý từng bước một cách bình tĩnh.
Git tự động gộp được phần lớn thay đổi. Xung đột chỉ xuất hiện khi hai nhánh cùng sửa cùng một vùng dòng trong cùng một file, hoặc một bên sửa file trong khi bên kia xóa nó. Khi đó Git không đoán được phiên bản nào đúng và nhờ bạn quyết định.
Sau khi chạy git merge và gặp xung đột, mở file bị báo lỗi, bạn sẽ thấy:
<<<<<<< HEADconst greeting = "Xin chào";=======const greeting = "Chào bạn";>>>>>>> feature/new-greeting<<<<<<< HEAD và ======= là phiên bản ở nhánh hiện tại của bạn.======= và >>>>>>> là phiên bản từ nhánh đang được gộp vào.git status để xem danh sách file đang có xung đột (mục "both modified").<<<<<<<, =======, >>>>>>>. Kết quả cuối cùng phải là code hợp lệ.git add ten-file.git commit (với merge) hoặc git rebase --continue (với rebase).Nếu thấy rối và muốn bắt đầu lại, bạn có thể hủy quá trình bằng git merge --abort hoặc git rebase --abort. Mọi thứ trở về trạng thái trước khi gộp.
Bạn không cần sửa bằng mắt trên văn bản thô. Các editor hiện đại như VS Code hiển thị nút "Accept Current Change", "Accept Incoming Change", "Accept Both Changes" ngay trên vùng xung đột, và có giao diện so sánh ba cột (merge editor). Ngoài ra bạn có thể dùng git mergetool để mở công cụ so sánh đã cấu hình.
Lỗi nguy hiểm nhất là nhấn "Accept" mà không đọc. Hãy tự hỏi:
Với các xung đột phức tạp, hãy nhắn đồng đội ngồi cùng giải quyết thay vì đoán. Năm phút trao đổi tốt hơn nhiều so với hai giờ sửa lỗi do gộp sai.
Với file khóa phụ thuộc như package-lock.json hay composer.lock, đừng sửa tay. Cách thường dùng là giữ phiên bản của nhánh chính, rồi chạy lại lệnh cài đặt (npm install, composer install) để tạo lại file nhất quán. Với file sinh tự động khác, hãy chạy lại công cụ sinh thay vì chỉnh bằng tay.
Xung đột không phải lỗi của bạn mà là cơ chế bảo vệ để không ai vô tình ghi đè công sức của người khác. Hãy nhớ quy trình: xem trạng thái, đọc hiểu hai phiên bản, chọn hoặc kết hợp, test lại, add và commit. Thực hành vài lần trên repo thử, bạn sẽ không còn sợ nữa.
Để học làm việc nhóm với Git trong các dự án cụ thể, bạn có thể tìm khóa học phù hợp trên codebem.com.
Nguyễn Đình Cường
0 comment