Code changes are committed and then pushed to the remote "master" branch.
Once commits are verified as ready for release, they are merged into the remote "release" branch.
To set this up:
# setup new branches so that git-pull(1) will appropriately merge from the remote branch
git config branch.autosetupmerge true
# setup a local release branch to track the remote release branch
git branch --track release origin/release
# merge changes from master into the release branch
git checkout release
git merge master
Maybe add a hint for local git flow when developing features:
Keep a local "develop" branch, and a branch per new feature. Then merge the feature branch with develop, and then merge "develop" with "master" and then push to the remote master.
To set this up:
Maybe add a hint for local git flow when developing features: