Is it possible / desirable to have a "master", "test" and "develop" branch when using git-flow?
I am currently working on a project that we are in the process of switching to Git. We are trying to figure out which workflow to use. We are very interested in git-flow but have a problem.
As I understand git-flow, developers create branches feature
from develop
, as soon as they are executed with a specific branch feature
, the code is merged into develop
. When we want to release for life, develop
then it merges into master
. In our case, it develop
will be what is currently used in our Dev environment , and master
will be what is currently Live . This is good and good.
Thing
The point is that we have another environment that we need to deploy to Live , i.e. Test . We want to have a branch test
that will always represent what is currently being used for Test .
This is how we assume it works:
- Developers work in branches
feature
that are merged intodevelop
, which are deployed to Dev . - When we are ready to progress to Test , it is
develop
merged intotest
and carried over to Test . - After everyone is signed up for the Test , we merge
test
intomaster
and take Live .
My questions
- Is this possible with git-flow, if so how?
- Should we do this?
- How else can this be achieved?
source to share
git-flow has the concept of branches release
that you can use for this purpose.
The point is that in git-flow, it develop
doesn't just merge into master
. First you create a branch release
where you prepare for a live version, check it out and fix patches at the last minute before you merge it on master
, that is, push it live.
When a is release
closed, it is merged into again develop
, so you will have all the fixes tested in your main development branch.
Disable support branches for preparing a new release. They allow last-minute point and cross ts. They also allow minor bug fixes and prepare release metadata (version number, build dates, etc.).
source to share