Branches as a 1:1 Mirror of the Delivery Plan: The Git Flow Variant That Replaced cherry-pick for Me
"We're not shipping this feature yet. Take it out of the release." "And this one needs to go into the previous version, urgently." At some point requests like these become routine. You find the commits, run cherry-pick or revert , check the dependencies, work out what you touched by accident, and reassemble the release scope. The Git commands are not the problem. What bothered me was a different…
This branch model, a variant of GitFlow, is designed to mirror the delivery plan in a direct manner. Unlike the traditional GitFlow, which uses a single "develop" branch for the upcoming release, this approach assigns a dedicated branch for each version, each with its own set of stages - from development to production.
The model operates on three principles. Firstly, releases are promoted as entire units. The release schedule and scope are determined by management, with the responsibility for handling the transition between stages resting with the development lead. This promotes a clear handover point when a release moves from one stage to the next.
Secondly, the creation of a new version always branches off from the current stage of the latest version. This ensures that each version has its own unique chain of branches, starting from the appropriate point in the previous version's chain.
Lastly, fixes are propagated forward. Any bugs identified in older versions must be addressed in all subsequent versions, through a merge request from the older version to the newer one.
In comparison to the traditional GitFlow, which uses a single "develop" branch, this model allows for multiple releases to exist simultaneously, with each version having its own development and testing stages. This direct reflection of the delivery plan reduces the potential for confusion and miscommunication around release scope and timing. The model also reduces the need for frequent "reverts", as fixes are addressed in the appropriate version rather than being scattered across multiple branches.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.