Viet Nguyen - QSoftVietnam
Gitflow Workflow
Introduction
- A workflow created by Vincent Driessen
- Designed around project release
- Work well for big projects
How it works
- Historical branches (master and develop)
- Feature branches (feature/*)
- Release branches (release/*)
- Hotfix branches (hotfix/*)
Historical branches
- master: official release
- develop: main branch
Feature branches
- Be created for each feature
- Use develop as their parent branch
- After completing, will be merged back into develop
Release branches
- Use for preparation of a production release
- Concentrate on bug fixes
- Use develop as their parent branch
- After completing, will be merged back into master and develop
Hotfix branches
- Use to patch production releases
- Use master as their parent branch
- After completing, will be merged back into master and develop
Gitflow Extensions
Feature branches
- To start a feature branch:
git flow feature start <feature_name> [<base>]
(<base> is a commit of branch develop)
- To publish the feature (which means push it remotely)
git flow feature publish <feature_name>
- To pull feature
git flow feature pull <feature_name>
- To finish (merge into develop and delete the feature branch both locally and remotely)
git flow feature finish <feature_name>
Release branches
- To start a release branch:
git flow release start <release_name> [<base>]
(<base> is a commit of branch develop)
- To publish the release
git flow release publish <release_name>
- To finish (merge into develop and delete the release branch both locally and remotely)
git flow release finish <release_name>
Hotfix branches
- To start a hotfix:
git flow hotfix start <VERSION>
- To publish the hotfix
git flow hotfix publish <VERSION>
- To finish (merge into master and delete the release branch both locally and remotely)
git flow hotfix finish <VERSION>
NOTE
Everything that can be done by Gitflow extensions can be done by GIT commands
References