Git Flow is a strategy for working with Git that optimises for parallel delivery of features.
- Branches are categorised based on usage:
masteris the branch used for production releases.
developcontains stable features for the next release, and is branched from
develop. These exist concurrently, and are integrated back into
developwhen stable. Features integrated into the
developbranch must be merged back into feature branches.
release/*branches branch from develop, and are used for stabilising releases: bug fixes can be checked into these branches. These should be merged back into
develop, where they'll trickle down to feature branches.
hotfix/*branches are short lived, existing only to branch from
masterduring development of a fix. They should be removed once merged back into
master, they should be merged into
- Tags are taken whenever changes are merged to master. These are a good candidate for semantic versioning.