Quote:
Originally Posted by Bantam222
Once development is complete in 'update_1', we will push this branch to production, and then fork a new 'update_2' branch out of 'update_1' branch to start working on the next update.
...
Due to this branching model, any fix that is committed into 'main' branch, must also be integrated into 'update_1' branch, so we do not lose the fix when 'update_1' branch is pushed to production. Similarly, we need to integrate all fixes from 'main' and 'update_1' branch into 'update_2' branch (once it is created), so we do not lose any of our in-production fixes once 'update_2' branch ships to production.
Why don't you create update_2 from main (after update_1 is merged in) instead of creating _2 from _1 and additionally bringing in commits from main?
If the intention is to bring all commits from branch X into branch Y, why cherry-pick them individually instead of using merge?
fwiw where I work we have a similar-ish workflow, but I think we do less cherry-picking than your workflow implies. Ours is like...
- master branch, never replaced, development takes place here
- create new branches for release, cherry-pick individual commits from master that we want to include in releases
- no need to merge from release -> master because the stuff in release was already taken from master