So I am figuring out the simplest branching/deployment strategy from Github that at least has a dev and a release(master) branch. After seing this answer I think this is really close to what we need. Except the one big problem of being able to deploy only some features. Not everything.
The 2 options presented here are just not good enough. This is a common scenario and reverting everytime is plain nasty. Also, I have read that cherry picking has other issues as well specially because the cherry picked commits are actually copies (is this true?)
Now, I am thinking that if for new features that we start working on we create a branch, and we merge them to our chosen dev branch, we can merge those branches to the release branch (instead of merging from dev to the release branch, we merge from feature branch to both dev and release so we can chose what to release) so we would only have the desired changes ready for release. I can think of at least two possible issues with this:
- The feature branch has been merged to both dev and release, will this get me in trouble later?
- Will it work? since my feature branches could be based off changes made in other feature branches (they would be based off dev) when I merge the feature to dev I would have to pull first, thus adding the other features in.
So, in summary, how can i keep a dev branch, put some changes there, and later only move some stuff to another branch?.
Thanks a lot.