I\'ve just took a look on this gitflow cheat sheet. I don\'t understand the release
branch.
Could anybody tell me the difference between release
The difference is in goals and process. A release
branch is usually created when you are preparing for an upcoming release. When all your feature
branches which are supposed to be released have already been merged to develop
branch you create release
branch off develop
branch and commit only bug fixes or some configuration changes to it. In other words you try to make it as stable as it's possible. When hopefully release
branch is stable enough you merge it back to develop
and master
branches. The purpose of master
branch is to always have the latest stable version of the project which can be deployed to production environment. You never commit directly to master branch, only merge to it from either release
or hotfix
branches. It is also possible to configure CI/CD tools to deploy to production on any update in master
branch.
After a release
, release
branch will be deleted, but master
will be staying stable.
Once all the features you want to have in your release are in develop, instead of "locking" develop to any new commit, you create the relase branch that will contains all the feature expected in your next release (and not in master since your whole release should be tested and would probably have some bugfix...).
You can have a look at these links for further explanations:
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow http://nvie.com/posts/a-successful-git-branching-model/#feature-branches