Monday, January 6, 2014

Git branching models review

Good explanation for well known branching models :
git-flow script:
interesting explanation of git-flow:


just another workflow (Dymitruk Model):

another overusage of git (but helps its owners):

One man have the same problem as we (Feature branch vs Jenkins):

So here is summary:
- git workflow is never ideal and never suit all needs;
- git workflow is reflection of release approaches and language nature and nuances of current project (
 a) existence of CI and level of CI fanaticism (to automate all or have special person that manage CI),
 b) QA/UAT staging environment and how that team approve release to be applied to production,
 c) special engineer that will focus on releases,
 d) versions bump approach,
 e) project structure and building nuances (maven, ant, gradle, scripts or compiled language),
 f) frequency of releases and hotfixes,
 g) requirement of previous versions support or back-porting policy,
 h) project manager that can always apply pull requests, or any code review system (gerrit)
- every "enterprise-successful" workflows create some script/plugin to follow its model with hiding all git commands, and ease git management.
- if you do not like over-engineering, so stay with simplest branching model (all in master, feature branches goes base on master) 

No comments:

Post a Comment