I follow a workflow similar to Git Flow with some tweaking. Here are some high level built points.
master
branch should hold production ready code, each commit should ideally be tagged with a version- main development show happen on
develop
branch - all new self contained features should be developed in there own branch prefixes with
feature/
that are cut fromdevelop
- all major features that might require multiple branches to complete should be worked from a branch prefixed with
major/feature-
that are cut ofdevelop
-- all features for a major branch should be prefixed withmajor/
that are cut from the associatedmajor/feature-
branch - all
feature/
andmajor/
branch should be merged back into the branch they were cut from and then deleted - when
develop
has all the features needed for the next release, a branch should be cut fromdevelop
with the prefixrelease/
- all
release/
branches should be merged intomaster
anddevelop
and then deleted - all hotfix branches should be prefixed with
hotfix/
that are cut frommaster
- all
hotfix/
branches should be merged back intomaster
anddevelop