Git Flow
ELI5 — The Vibe Check
Git Flow is a branching model with specific branches for features, releases, hotfixes, and development. It's like a highway system with designated lanes. Great for teams with scheduled releases, but overkill for teams that deploy continuously. It was revolutionary in 2010; now many teams find it too heavy.
Real Talk
Git Flow is a branching model defining long-lived branches (main, develop) and short-lived branches (feature/, release/, hotfix/). Features branch from develop, releases branch from develop to main, hotfixes branch from main. Works well for versioned software with infrequent releases.
When You'll Hear This
"Git Flow works for our quarterly releases but we'd never use it for a SaaS product." / "The release branch lets us stabilize while the team keeps working on develop."
Related Terms
Feature Branches
Feature Branches mean you create a new branch for every feature, bug fix, or experiment. Work in isolation, make a PR when ready, merge when approved.
GitHub Flow
GitHub Flow is Git Flow's chill younger sibling. One rule: main is always deployable. Branch off main, do work, open a PR, merge to main, deploy.
Release Train
A Release Train is a scheduled release that leaves the station whether your feature is on it or not.
Trunk-Based Development
Instead of giant feature branches that live for 3 weeks and cause merge hell, trunk-based development has everyone commit to main every day.