RELEASE TAG
o----------------------------o-----------------o------------o------> MASTER
\ / \ \----------/ HOTFIX
\ / \ \
\----------------------/ \--------------------o-----o------> DEVELOP
\ /
\----------------/ FEATURE
Master
: should contain the most stable, production ready code. In other words, we can pull from master and build and deploy at anytime.Develop
: is where most of the development happen. After code inDevelop
stable enough, it can be merged back toMaster
. Every release should be tagged (Ex: version 2.1.3).Feature
: is where each feature development happens. Should be only branched fromDevelop
and commited back toDevelop
. After fully merged toDevelop
, individualFeature
branch can be deleted.Hotfix
: is where we do bug fix in current release. After finish fixing the bug,Hotfix
get merged to bothMaster
andDevelop
, then it can be deleted.
Feature
: prefix withfeature_
and then a short descriptive name (Ex:feature_new_mission
).Hotfix
: prefix withhotfix_
and then a short descriptive name (Ex:hotfix_duplicate_mission
).
Read more:
found a good write-up on Medium covering this: https://medium.com/goodtogoat/simplified-git-flow-5dc37ba76ea8 ;)