All glossary terms
Optimize

Gitflow

Gitflow is a branching model with long-lived develop and main branches, plus feature, release, and hotfix branches. It was designed for software with discrete versioned releases (think shrink-wrapped 1.0, 1.1, 1.2 cadences) and is widely considered overkill for continuously-deployed web services.

Gitflow's reputation has shifted dramatically since its 2010 publication. For the use case it was designed for — versioned software with explicit release branches, support for multiple in-flight versions — it remains a reasonable choice. For continuously-deployed SaaS, the model adds ceremony without value: develop is a synonym for main, release branches are an indirection, and hotfix branches conflict with the deploy-from-main norm. Vincent Driessen, Gitflow's author, formally retired the model for web teams in 2020. The healthier modern defaults are trunk-based development with short-lived feature branches behind feature flags.

Related terms