For every new feature, rework or bugfix we use a separate branch. While this does look like a lot of extra work, this is actually very easy and fast when using GIT. This allows the team to more closely follow release schedules, because only stable code will be allowed to merge with the master.
Also developers are no longer stalled by feature and code freezes. They can just continue their work in their branch.
Generally speaking there are four different kinds of branches:
- BUG_<Jira Ticket>: _<Short Description> - Such a branch is about a bugfix. The Jira ID clearly links it to the issue in Jira.
- FEAT_<Jira Ticket>: _<Short Description> - This branch is a new feature. The Jira ID clearly links it to the issue in Jira .
- RELEASE_ - Such a branch is used for all maintainance releases for a major release. i.e. Release_2.0.x stores the stable code of all 2.0.x maintainance releases.
- EXP_<Short Description>- These are Experimental branches which are used to try out ideas. Such are unclear if they ever reach a state where they can be integrated into a major release.
- WIP_<Short Description>- These are Work in Progress branches which are used to group many feature or bug for testing or next releasing.