We use gitflow branching strategy for different reasons, one of them being complicated bureaucracy around releases.
We have environments:
Once the developers finish their work in
dev branch, we create
release branch and trigger deployment to
qa process is done, we trigger deployment of the same branch to
After tests in
preprod are finished, we deploy the same branch to
Issues arise when business asks to remove/add some features from
release branch, for example, after deploying to
preprod but before deploying to
prod. In that case, if its a simple commit or several of them, we can cherry-pick. But that gets complicated very soon.
Is there a general solution for this? And, is the solution technical or is it on the planning side like establishing a consensus:
release branch doesn't get deployed to
production until all the features that went into
release branch initially are ready?