Gitflow
A branching model for Git that defines a strict branching structure designed around project releases, using dedicated branches for features, releases, and hotfixes.
Definition
Gitflow, introduced by Vincent Driessen in 2010, uses five branch types: main (production code), develop (integration branch), feature/* (new features), release/* (release preparation), and hotfix/* (production fixes). Features branch from develop, releases branch from develop and merge to both main and develop. While popular, Gitflow is considered heavyweight for continuous delivery — many teams prefer trunk-based development.
Why It Matters
Gitflow provides clear rules for managing releases in projects with scheduled release cycles. However, for teams practicing continuous deployment, simpler models like trunk-based development may be more appropriate. Understanding Gitflow helps when joining teams that use it.
Example
Following Gitflow, a team branches feature/payment-api from develop, completes work, merges back to develop, then creates release/v2.1.0 for final testing before merging to main and tagging the release.