I have a workflow in which I need to have some features shipped to dev for testing before they are pushed to prod. The problem is that some of these features need to stay on dev server indefinitely and never be pushed to production server, so I can't ever sync dev branch with prod branch directly. This means I can't use a model in which I only have one master branch that gets published to prod via tags. I probably need to create a branch per each feature request and always branch off of the prod branch so as not to push anything that shouldn't be on prod from dev. I'm wondering what is the best approach for managing something like this with git.
The current idea is as follows:
Production branch (master)
Development branch (development)
feature1:
- branch created from master
- completed and merged into dev
- tested
- stays on dev indefinitely
feature2
- branch created from master
- completed and merged into dev
- tested
- merged into prod
Is this solid enough approach?
Thanks!