Conflict xảy ra khi nào
Khi git merge phát hiện hai nhánh sửa đúng cùng vài dòng. Git không tự chọn được nên chèn cả hai phiên bản vào file và đánh dấu để bạn quyết.
// File: conflict.js
<<<<<<< HEAD
const maxRetry = 3;
=======
const maxRetry = 5;
>>>>>>> feature/timeout
// Dòng trên là 2 phiên bản khác nhau.
// Bạn phải chọn 1, hoặc ghép cả hai, rồi xoá các dấu <<< === >>>
⚠ Đừng sửa vội trong editor khi chưa hiểu
Conflict chứa cả hai phiên bản. Đọc kỹ ý của người kia trước khi xoá. Xoá nhầm phần “của bạn” là mất cả tiếng của người khác. Nếu phức tạp, gọi người liên quan nói chuyện 2 phút.
Quy trình giải quyết
// File: solve.sh
git switch main
git pull
git switch feature/login
git merge main # kéo main mới nhất vào để test sớm
# 1. sửa conflict trong editor, xoá dấu <<< === >>>
git add .
git commit -m "merge: chốt maxRetry = 5"
git push
| Mẹo giảm conflict | Giải thích |
|---|---|
| Pull trước khi làm | Luôn bắt đầu từ code mới nhất, ít lệch sau này |
| Commit nhỏ, thường xuyên | Phạm vi sửa nhỏ → ít vùng đụng nhau |
| Ít sửa cùng file với người khác | Phân chia file/class rõ ràng |
| Merge main về thường xuyên | Giải conflict từng ít một thay vì dồn cục |
❓ Khi gặp conflict, việc ĐẦU TIÊN bạn nên làm là gì?
- Nhận diện được file đang conflict (có <<< === >>>)
- Đọc hiểu cả hai phiên bản trước khi chọn
- Merge main về nhánh của mình thường xuyên
- Commit conflict resolution với message rõ ràng