We have a master
branch and many short living feature branches that get merged into master
after the customers have accepted the changes.
In addition to that we have long living environment branches for the user acceptance system and the production system, named stage
and prod
, that are originally branched from master.
Our workflow looks like that:
- develop feature on feature branch
- merge feature branch into
stage
- wait for customer acceptance
- on acceptance merge to
master
master
gets merged intoprod
the next day
Customer acceptance can take short to very long, so there are several "features" living on stage
that are either waiting for acceptance or abandoned. Because if the customer does not accept the change we do not merge the feature to master
but sadly it lives on on stage
like a zombie :)
Now the question(s):
How would we reset the branch stage
to current master
without losing the ability to merge the feature branches that are still waiting for acceptance to stage
again? The goal here is to get rid of the abandoned "features".
Is this possible without altering history and force-push?