| English | 中文 |
Gitflow is a classic branching model suitable for products with a clear version release cadence.
It divides daily development, release preparation, and live hotfixes into different branch roles. It is ideal for scenarios with distinct release cycles, such as clients, SDKs, and private deployments.
main: Production version historydevelop: Integration branchfeature/*: Feature developmentrelease/*: Release preparationhotfix/*: Live urgent hotfixesdevelop -> feature/* -> develop -> release/* -> main -> tag
\-> hotfix/* -> main -> develop
develop and main may diverge for long periodsDo not blindly copy Gitflow.
If your team releases Web services multiple times a day, GitHub Flow or Trunk-Based Development is often lighter.
If your product has clear version lines, release windows, and customer-side upgrade cycles, Gitflow still holds value.
Atlassian’s Gitflow tutorial also frames it within specific release-oriented scenarios: it is suitable for release trains, release prep, hotfixes, and heavily audited products. In modern CI/CD and high-frequency service delivery, long-lived branches increase the cost of diverging from the mainline and causing integration conflicts.
Tencent Cloud Gitflow Branching Practice can serve as a reference for Gitflow-style team guidelines, especially suitable for teams needing well-defined paths for releases, hotfixes, tags, and backporting.
Alibaba AoneFlow Branching Practice provides an alternative perspective: retaining the clear boundary between feature and release while reducing the complexity introduced by a long-lived develop branch.