I need help with the workflow that is best suitable for our needs. We are a 3-4 person team and are working on 4 different projects.We have three main branches:master - deployable production branchstaging - features under QA on live datadev - features under QA on test dataThen for each feature, we create a feature branchWhat we need:Sometimes we would like to create a release (for many features that have something in common) and would be deployed in the end of the month.Sometimes we would like to deploy a specific feature/change (without creating a release). This is what we do most of the time.Now to the workflow:I start working on some feature. I create a feature branch off from dev.I finish my feature (with 30 commits).I squash merge my feature into dev - so it becomes just one commit.The feature is automatically deployed to a testing environment and QA tests out my feature on test data.The feature tested OK, so I cherry-pick my feature commit hash to a staging branch. The feature is automatically deployed to a staging environment and QA tests out my feature on live data.The feature passes QA (test and staging) and is either cherry-picked to master or to a release branch, which will be merged with master in the end of the month.Here's a picture explaining what I have in mind:Does this all make sense? Is there a better way to achieve this goal? Thanks for your time.
Best Git workflow suitable for our needs
git;workflows