5 phút đọc

3-way Merge

3-way Merge

Khi không thể fast-forward, Git chuyển sang 3-way merge. Đây là kiểu merge phổ biến khi nhiều người cùng làm việc.

1. 3-way merge là gì?

3-way merge three-way merge xảy ra khi cả hai branch đều có commit mới kể từ điểm tách (lịch sử đã phân kỳ). Git không thể chỉ dời con trỏ, nên nó nhìn vào ba commit: tổ tiên chung gần nhất và commit cuối của mỗi branch, rồi tính ra kết quả gộp.

2. Merge commit

Kết quả là một merge commit đặc biệt có hai commit cha, ghi lại điểm hai nhánh hợp lại → lịch sử có nhánh.

git switch main
git merge feature
# Merge made by the 'recursive' strategy.

Nếu hai branch sửa cùng một chỗ, 3-way merge sẽ báo conflict merge conflict và bạn phải giải quyết thủ công.

Cách nhớ nhanh

3-way merge = hai branch phân kỳ → Git gộp từ 3 commit (tổ tiên chung + 2 ngọn) và tạo merge commit có 2 cha.