glossaryGit Flow
A branching model that defines a strict set of branch types (main, develop, feature, release, hotfix) and rules for how and when branches are created, merged, and deleted.
explanation
Git Flow, popularised by Vincent Driessen in 2010, is a prescriptive branching strategy. The model defines two long-lived branches — main (production-ready code) and develop (integration branch for features) — and three supporting branch types: feature branches (branched from develop, merged back to develop), release branches (branched from develop for release preparation, merged to both main and develop), and hotfix branches (branched from main for emergency fixes, merged to both main and develop). The model enforces strict rules about which branch merges where. Feature branches are never merged directly to main. Release branches are created when develop reaches a release-ready state, allowing last-minute bug fixes without blocking new feature development. Hotfix branches allow critical production fixes to bypass the release pipeline entirely. Git Flow was widely adopted in the 2010s and remains popular in projects with scheduled releases and formal release cycles. However, it has been criticised for its complexity compared to simpler models like trunk-based development, especially for teams practicing continuous delivery. The overhead of maintaining multiple long-lived branches and the discipline required for correct merges leads many modern teams to prefer simpler strategies.
examples
git flow feature start user-profile # start a new feature branchgit flow feature finish user-profile # merge feature back to developgit flow release start v1.2.0 # start a release branchgit flow hotfix start 1.2.1 # start a hotfix from maingit flow hotfix finish 1.2.1 # merge hotfix to main and develophow git-agent helps
git-agent works with any branching model, including Git Flow. Its atomic commits and conventional messages ensure that regardless of the branch topology, each commit carries a clear intent. When release and hotfix merges happen, the commit history remains readable and useful for changelog generation.
brew install gitagenthq/brew/git-agentFAQ
Is Git Flow still recommended for modern projects?What is the difference between Git Flow and GitHub Flow?Can git-agent automatically determine the correct branch type?