Many ways to skin a cat

Git Flow is one of many source control models - get a feel for which works for you.

Getting Setup


We can install git flow on Linux by simply

$ apt-get install git-flow

If you are using Windows or Mac there are Instructions for your operating system.


$ git flow init

We are then prompted to configure the branch names though we can simply press enter to go with the defaults

Branch name for production releases: [master] 
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/] 
Bugfix branches? [bugfix/] 
Release branches? [release/] 
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? [] 
Hooks and filters directory? [/home/will/Code/flow/.git/hooks] 

Our first feature

$ git flow feature start my-first-feature

# Flex your coding muscle

$ git flow feature finish

Release Early, Release Often

$ git flow release start 1.0.0

# Perform release activities (ie. bump version number)

$ git flow release finish

Mistakes Happen

$ git flow hotfix start 1.0.1

# Fix the bug

$ git flow hotfix finish


Further Reading

Ever wondered why a release was tagged 1.0.0-RC1? A super useful related note to version control is Semantic Versioning which aims to help reduce "dependency hell" by defining a semantic meaning behind the version numbers.