On Cloud Atlas, we switched to a heavily modified version of the “git flow” workflow, based on http://nvie.com/posts/a-successful-git-branching-model/ and https://www.atlassian.com/git/workflows#!workflow-gitflow
The basic premise is this: We run one main branch, develop, and whenever we want to begin preparing for a release, we create a Release_x.y.z branch off of develop. It is these Release_x.y.z branches that get deployed to staging and then production.