GitFlow Workflow
GitFlow is a structured branching model for teams that ship software on a defined schedule. It uses multiple long-lived branches with strict rules about what merges where. Dominant for a decade in enterprise and mobile development.
01.The Five Branch Types
Permanent branches: main (always production-ready, tagged on releases), develop (integration branch where features merge). Temporary branches: feature/* (branch off develop, merge back to develop), release/* (branch off develop for final prep — bugfixes only, merges to both main and develop), hotfix/* (branch off main for emergency fixes, merges to main and develop).
02.GitFlow: Pros and Cons
Pros: clear isolation between production and development, supports multiple version maintenance, well-suited for scheduled releases and mobile apps. Cons: complex with many long-lived branches, merge conflicts accumulate, slow release cycle, overhead for most web projects. Best for: versioned libraries, mobile apps, enterprise software with defined release windows. Not recommended for: web apps with continuous deployment.
Commands
In GitFlow, where should feature branches merge to?