Everywhere I look for the right way to use GIT in a team, we always get referred to git-flow.
We started to use this scheme as our bible at the beginning:
Time passed, and we finally found that keeping master
as the stable branch with tagged commits was a waste of time.
Why would you TAG your stable commit and then PUSH to master
the same version you already tagged? The tag exists, you may return to this commit any time. Why should I bother to keep this branch just to contain only the tags?
Here is the flow we use, and it works like a charm:
Master : Is actually our development branch
Release: We create a release branch to do our last release test case then we add fix if needed.
Feature: We branch from Master to create a feature then we send the pull request to master.
Actually, it's the same as git-flow, without a branch containing stable.
Another advantage of this, is that master
is the develop
branch. So when a new teammate comes in the project, he may start by cloning the project and his master
is already up to date with the actual development.
In image:
My question is, why would you use the original git-flow with 5 branches if you could manage only 4 branches with the same result?
develop
branch but themaster
for development, and support branches for the long term maintenance of multiple versions in parallel. – Twotone