my-git

Gitflow

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.

Branches

Typical Process

develop -> feature/* -> develop -> release/* -> main -> tag
                              \-> hotfix/* -> main -> develop

Suitable Scenarios

Unsuitable Scenarios

Advantages

Costs

Decision Recommendations

Do 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.

Enterprise Practice References

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.

Extended Reading