Currently working from two branches : develop
Feature branches are created from develop and when the changes is complete the feature branch is then merged back to develop.
Currently, we are working on a significant update named u1
that will not be complete for 3 months. In the meantime, we will need to provide other functionality and hotfixes to the current release that is unrelated to u1.
To accomplish this change, I suggest the following :
Create a new branch from develop that will include only the features for u1
. All u1 related features will be added to the u1
branch. Continue to create hotfixes etc, feature branches from develop and merge the hotfixes to develop. At some point when u1
is feature complete merge the u1
branch to develop
(which contains the hotfixes previously described). Is there a name for this git strategy, are there alternative ways of managing this git workflow ?
A general practice that I have encountered consists of the following rules:
master
branch, which is equivalent to the code in productiondevelop
branch, which is used to stage and test feature branchesmaster
develop
master
master
, that is, you test everything that realistically could go wrong as well as features of critical importancemaster
and merge only the features that did not cause troublemaster
and merged into master
once they are completeddevelop
and then smoke test develop
develop
into master
, since develop
may contain untested featuresmaster
into develop
as well as your epic feature branches