Feature branching
In this branching strategy, all the changes for a feature are kept inside the branch.
When the automated tests test and validate the feature branch, the branch is
merged into the master.
Task branching
Under this strategy, each task is implemented in its own branch. The task key is
included along with the branch name. The presence of this key makes it easy to see
which task is implemented by which code.
Release branching
Once the develop branch is ready with its features, it is cloned to form the Release
Branch. Creating this branch sets the Release cycle in motion whereby no new
features and can be added. The only tasks that can be performed are: bug fixes,
documentation generation, and other release-related tasks. The release is merged
into the master and tagged with a version number when it’s ready to ship.