Achieving SCM Tranquility with git-flow

Get Started. It's Free
or sign up with your email address
Rocket clouds
Achieving SCM Tranquility with git-flow by Mind Map: Achieving SCM Tranquility with git-flow

1. History


1.2. 2010

1.3. Vincent Driessen

1.4. A Successful Git Branching Model

2. Why a new branching model?

2.1. complexity

2.2. confusion

2.3. Why Aren't You Using git-flow?

3. What is git flow?

3.1. The branching model

3.1.1. Permanent branches master always reflects production no commits, only merges (from release or hotfix branches) tags reflect production version at each release develop "integration branch" always reflects production-ready code for the next release nightly builds

3.1.2. Transient branches feature naming branches from merges to release naming branches from merges to hotfix naming branches from merges to

4. Effective git-flow

4.1. Get comfortable with the command line!

4.2. git plugin for git-flow

4.3. git-flow-avh

4.3.1. GitHub repository

4.3.2. Homebrew (for mac users)

4.3.3. Cygwin (for Windows users)

5. Adapting git-flow for scrum teams

5.1. PROBLEM: large, long-lived features (epics) SOLUTION: Use git-flow-avh

5.1.1. updated version of git-flow tool

5.1.2. supports sub-features (with merging back to parent feature, rather than develop)

5.1.3. some nice shortcuts

5.2. PROBLEM: QA testing of feature branches SOLUTION: Borrow idea from current model: sprint branch

5.2.1. lives only for the duration of the sprint

5.2.2. feature branches involved in the sprint are manually merged here

5.2.3. built regularly (many times a day?) and deployed to QA environment

5.2.4. at the end of the sprint, DESTROYED

6. Demo

6.1. init

6.2. create README

6.3. create feature branch

6.3.1. update README

6.3.2. commit

6.3.3. create sub-feature branch

6.3.4. add another file

6.3.5. commit

6.3.6. finish sub-feature

6.3.7. merge to sprint branch

6.3.8. finish feature

6.4. create release branch

6.4.1. do on-release bugfix

6.4.2. finish release

6.5. create hotfix branch

6.5.1. fix typo

6.5.2. finish hotfix

7. Server-branch relationships

7.1. DEV

7.1.1. Sprint

7.2. QA

7.2.1. Develop

7.3. STAGE

7.3.1. Master

7.3.2. Release

7.4. PROD

7.4.1. Master (release tag)