my-git

Microsoft Release Flow

English 中文

Original links:

Microsoft Release Flow is a great reference for mid-to-large business teams.

It adopts a trunk-based integration approach, but does not deploy master directly to production continuously. The team creates a release branch from master per sprint, and production hotfixes are merged into master first, then cherry-picked to the current release branch.

Core Process

feature branch -> PR -> master
master -> releases/M130 -> production
hotfix -> master -> cherry-pick -> releases/M130

This model separates two goals:

Why Not Use Complex Long-Term Branches

Microsoft’s article mentions that complex, multi-layered branch structures easily mirror organizational structures, with code integrating upwards to the trunk, then syncing back from the trunk to various branches, eventually forming sustained merge pressure.

The trade-off made by Release Flow is:

Hotfix Rules

The most valuable takeaway from Release Flow is “master first.”

Production fixes are first merged into master, then cherry-picked to the current release branch.

This avoids a common incident: fixing an issue in production, but the trunk doesn’t have the fix, and the next release brings the issue back.

Only when the fix is no longer applicable on the trunk should one consider fixing it directly on the release branch.

When to Adopt

Suitable for:

Not suitable for:

Key Takeaways

Release Flow illustrates a very practical combination:

trunk-based integration + release branch deployment + master-first hotfix

It is lighter than a full Gitflow, yet more suitable for mid-to-large service teams than pure GitHub Flow.