Difference between revisions of "Git Branching Strategy"

From Gcube Wiki
Jump to: navigation, search
Line 1: Line 1:
* The ''master'' branch is the stable branch
+
* The ''master'' branch is the stable branch. Must be always in a releasable state.
* One (and only one) develop (named ''dev'') branch is created from ''master''
+
* Feature (named ''feature/issue'') branches are created from ''master'' (issue is the tracker issue number that describes the feature).
* Feature (named ''feature/issue'') branches are created from ''dev'' (issue is the tracker issue number that describes the feature)
+
* When a feature is complete the corresponding ''feature'' branch is merged into the ''master'' branch.
* When a ''feature'' is complete it is merged into the ''dev'' branch
+
* Features may be experimental and branches discarded without corrupting the stability of the ''master'' branch.
* When ''dev'' has enough stable features to release it is merged into ''master''
+
* When ''master'' has enough stable features it is released
 
* If an issue (typically a bug requiring immediate attention) in ''master'' is detected a ''hotfix/issue'' branch is created from ''master'' (issue is the tracker issue number that reports the problem)
 
* If an issue (typically a bug requiring immediate attention) in ''master'' is detected a ''hotfix/issue'' branch is created from ''master'' (issue is the tracker issue number that reports the problem)
* Once the ''hotfix'' is complete it is merged to both ''dev'' and ''master''
+
* Once the ''hotfix'' is complete it is merged to ''master'' and any open ''feature'' branch (if needed)
  
 
[[File:Git Branching strategy.v4.png|800px]]
 
[[File:Git Branching strategy.v4.png|800px]]
  
 
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''
 
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''

Revision as of 00:08, 25 May 2019

  • The master branch is the stable branch. Must be always in a releasable state.
  • Feature (named feature/issue) branches are created from master (issue is the tracker issue number that describes the feature).
  • When a feature is complete the corresponding feature branch is merged into the master branch.
  • Features may be experimental and branches discarded without corrupting the stability of the master branch.
  • When master has enough stable features it is released
  • If an issue (typically a bug requiring immediate attention) in master is detected a hotfix/issue branch is created from master (issue is the tracker issue number that reports the problem)
  • Once the hotfix is complete it is merged to master and any open feature branch (if needed)

Git Branching strategy.v4.png

Back to the CI guide.