Branching, merge và rebase correctness
Merge kết hợp snapshots theo merge base; rebase sao chép thay đổi thành commit mới.
Merge semantics
Three-way merge dùng merge base, ours và theirs; rename detection là heuristic khi diff/merge, không phải metadata lưu trong commit. Conflict-free không đồng nghĩa behavior-correct: semantic conflict có thể compile và vẫn sai.
Rebase
Rebase replay commits trên base mới, tạo IDs mới; interactive rebase cho reorder/squash/edit. Không rewrite shared history nếu chưa có policy. rebase --rebase-merges cố giữ topology nhưng vẫn cần review.
Review và integration
Fast-forward không tạo merge commit; squash merge giữ final patch nhưng bỏ individual ancestry; merge commit giữ topology. Chọn strategy theo audit/revert/bisect needs. Rerere tái dùng recorded conflict resolution nhưng phải review context.