Trunk-based development (TBD): mọi developer commit thẳng vào main (hoặc PR ngắn hạn < 1 ngày), feature flag để hide work-in-progress khỏi user.
Phù hợp team CI/CD mature, deploy nhiều lần/ngày, test automation tốt. Git Flow (Vincent Driessen, 2010): branch develop riêng, feature/, release/, hotfix/* — quy trình lớn, hợp legacy software có release cycle dài (3-6 tháng), versioned product. Tại sao TBD thắng cho web modern:
- Continuous delivery cần main luôn deployable — branch dài hạn rất dễ drift, merge nightmare;
- feature flag cho phép merge code chưa hoàn chỉnh (ẩn sau flag) — không cần long-running feature branch;
- review nhanh vì PR nhỏ (< 400 lines);
- integration sớm phát hiện conflict trước khi tốn kém. Khi vẫn nên dùng Git Flow: phần mềm phát hành phiên bản (mobile app phải qua App Store review, desktop software, library với semver strict, embedded firmware). Practice TBD: short-lived branch (vài giờ tới 1 ngày), PR < 400 lines, CI gate strict (lint + types + tests + build, không skip), feature flag cho mọi tính năng lớn, monitor production aggressive (alerts, error tracking) vì deploy thường xuyên