Git branching model

Version Date Notes By
0.1 2016-10-24 Initial release JFM

The branching model adopted is Gitflow. Gitflow is a well known branching model that appears to be adequate to our development cycle.

Gitflow is a set of Git extensions which provides us with some extra commands that help us working with git on our branching needs.

Main branches

The Gitflow branching model has two main branches:

master always constains production-ready code

develop is the base for new development. Every time we need to add a new feature it always has to be based on the develop branch. The code on the develop branch is also the one that's tested regularly.

Support branches

Gitflow used three suport branches:

Features branches are used to develop new features, this way we can develop without affecting the develop branch until the feature is ready. When a feature is ready we must update the feature branch with the current develop branch, test it and if everything is OK merge it back with develop branch

Release branches are used as a preparation for a production release. Any last fix/tweaks must be done on this brach. When everything is ready, it must merged back to develop and master.

Hotfix branches are used to fix urgent bugs, hotfix they are created from the master branch and must be merged with develop and master

Daily cycle

Todo

Resources

A successful Git branching model

Comparing Workflows