Part 13 · CI/CD, Git & Cloud

Merge, rebase, branching và incident-safe recovery

Workflow giảm integration/release risk; history aesthetics đứng sau correctness và collaboration safety.

Merge/rebase/cherry-pick

Merge tạo commit với nhiều parents và giữ topology; fast-forward chỉ move ref. Rebase replay commits lên base mới, đổi identity; không rewrite shared history tùy tiện. Cherry-pick copy patch thành commit mới, dễ duplicate ancestry.

Branching

Trunk-based dùng short-lived branches/small changes/CI/feature flags; giảm divergence nhưng cần discipline. Release branches phù hợp cadence/support lines; Git Flow tăng merge/backport cost. Chọn theo deploy frequency/team/product, không dogma.

Conflict

Conflict là three-way merge không tự quyết. Hiểu base/ours/theirs và semantic conflict dù textual merge xanh. Build/test sau resolution. Rerere có thể reuse resolution nhưng phải review.

Recovery toolkit

reflog tìm lost ref; restore files/index; reset move ref/index/tree; revert tạo inverse commit an toàn cho shared history; bisect binary search regression với reliable test. Backup branch/tag trước risky rewrite.

Reviewable changes

Commits coherent, messages why, PR nhỏ với migration/risk/evidence. Signed commits/tags có identity value nhưng không thay review/build provenance.

Tài liệu: git merge · git rebase · git reflog · git bisect