Branching Strategies
How Teams Organize Branches
There's no single "right" way - teams pick a strategy that fits their release cadence.
| Strategy | Idea | Best for |
|---|---|---|
| GitHub Flow | One main (always deployable) + short-lived feature branches → PR → merge | Continuous deployment, web apps |
| Trunk-Based | Everyone commits to main frequently behind feature flags | High-velocity teams, CI/CD |
| Git Flow | Long-lived develop + main, plus feature/, release/, hotfix/ branches | Scheduled releases, versioned software |
Analogy: GitHub Flow is a busy kitchen where each dish (feature) is cooked on its own station and served fast. Git Flow is a formal restaurant with prep, plating and release stages - more structure, more overhead.
Tip: Most modern web teams use GitHub Flow or trunk-based - small branches, fast merges, deploy often. Git Flow shines when you ship versioned releases (v1.2, v1.3) to customers who don't all upgrade at once.