• To understand how to develop separate features without interfering
with other team members
• To get an idea of how to prepare a new release using a dedicated
• To learn how to integrate hotfixes in live environments
2 / 17
• Originally developed by Vincent Driessen
• Assigns very specific roles to different branches, and defines how
and when they should interact
• Allows merging and branching to be part of your daily workflow
3 / 17
origin/master HEAD is always ready for production
origin/develop HEAD always contains the latest delivered
Nightly builds are created from this branch
Whenever considered stable, merged back into master and
4 / 17
• Feature branches
Allow parallel development
Make tracking features easier
• Release branches
Help preparing for releases
• Hotfix branches
Enable you to quickly fix live problems
6 / 17
• Branch from and merge back into develop
• Used for developing new features
• Exists while the feature is in development
• Will eventually be
Merged back, to include the new feature in the next release, or
Discarded, if the feature should not be included
• Never directly interact with the master branch
7 / 17
Merging with the “no fast-
forward” option causes the
merge to always create a new
commit. This makes tracking of
your branches a lot easier!
9 / 17
• Branch from develop, and merge back into develop and master
• Created when all desired features for the next release have been
merged back into develop
• Supports preparation of a new production release
Setting up meta-data such as version numbers or database
Generating API documentation
• Features for the next release can already merge back into develop
10 / 17
Whenever changes are
merged back into master,
this is a new production
release by definition!
12 / 17
• Branch from master, and merge back into develop and master
• Created when a critical bug in a production release has to be
• Other team members can continue working on new features or the
13 / 17
5 Minute Review Session
• Name the two main branches and their roles!
• When and where are feature branches created?
• When and where are feature branches merged back?
• When and where are release branches created?
• When and where are release branches merged back?
• When and where are hotfix branches created?
• When and where are hotfix branches merged back?