Git flow is a Git workflow model designed to support parallel development and release management. It defines strict branching strategies for features, releases, and hotfixes. The main branches are master (production ready code) and develop (integration of features for next release). Feature, release, and hotfix branches are used temporarily to develop and test new features, prepare releases, and fix bugs in production respectively before being merged back to develop and master.
2. Agenda
❖ GIT Overview
❖ GIT Flow
❖ Master and Develop Branches
❖ Feature, Release and Hotfix Branches
❖ How it works
❖ Other Workflows
❖ Install and Demo
3. GIT Overview
❖ Version Control System - For the code we write!.
❖ Distributed - Repo stored locally with history and on
centralized location.
❖ Branching and Merging
❖ Fast - Written in C + Local Repo
❖ FREE + Open Source
5. GIT Overview - Branching and
Merge
Source: https://www.f30.me
6. GIT Flow
❖ Blog from Vincent Driessen in 2010 (from Netherlands)
❖ http://nvie.com
❖ First Structured Workflow
❖ Git extension called git-flow - by Jeff Kreeftmeijer
❖ http://jeffkreeftmeijer.com/2010/why-arent-you-
using-git-flow/
(Note: Image source for this presentation is http://nvie.com)
7. GIT Flow - Branches
❖ Master and Develop Branches
- They are there to stay
❖ Feature, Release and Hotfix -
are temporary supporting
branches. They support
❖ Parallel development
❖ Tracking features
❖ Bug fixes
❖ Quickly fixing live
Production issues
8. Master and Develop
❖ Master - Reflects a
production ready state.
❖ Develop - Reflects a state
with the latest delivered
development changes for
the next release.
9. Feature Branch
❖ Are used to develop new
features for the upcoming or a
distant future release.
❖ Target release - Unknown
❖ May branch off from:
develop
❖ Must merge back into:
develop
❖ Branch naming convention:
anything except master,
develop, release-*, or hotfix-*
10. Release Branch
❖ Support PROD releases - Can consist of 1-n
features
❖ Testing and Bug fixing
❖ Develop branch is cleared to receive features for
the next big release - Take develop code and
start creating more features (branches).
❖ May branch off from:
develop
❖ Must merge back into (Finish Stage):
develop and master
❖ Branch naming convention:
release-*
11. Hotfix Branch
❖ Like release branches
❖ Fix bugs in PROD
❖ May branch off from:
master
❖ Must merge back into:
develop and master
❖ Branch naming convention:
hotfix-*
17. Other Workflows
❖ GitHub Flow - one off from master
❖ Skullcandy’s flow- feature branch based on
story/deliverables , Merged to QA branch for testing and
then PROD
❖ Master Only flow
❖ Backcountry flow - Master , Feature and PROD
branches