Gitflow Workflow
suggest changeOriginally proposed by Vincent Driessen, Gitflow is a development workflow using git and several pre-defined branches. This can seen as a special case of the Feature Branch Workflow.
The idea of this one is to have separate branches reserved for specific parts in development:
master
branch is always the most recent production code. Experimental code does not belong here.develop
branch contains all of the latest development. These developmental changes can be pretty much anything, but larger features are reserved for their own branches. Code here is always worked on and merged intorelease
before release / deployment.hotfix
branches are for minor bug fixes, which cannot wait until the next release.hotfix
branches come off ofmaster
and are merged back into bothmaster
anddevelop
.release
branches are used to release new development fromdevelop
tomaster
. Any last minute changes, such as bumping version numbers, are done in the release branch, and then are merged back intomaster
anddevelop
. When deploying a new version,master
should be tagged with the current version number (e.g. using semantic versioning) for future reference and easy rollback.feature
branches are reserved for bigger features. These are specifically developed in designated branches and integrated withdevelop
when finished. Dedicatedfeature
branches help to separate development and to be able to deploy done features independently from each other.
A visual representation of this model:

The original representation of this model:

Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents