These examples are using the default configuration with
GitVersion. Which is
continuous deployment
mode for develop
and
continuous delivery
mode for all other branches.
This default configuration allows you to publish CI builds from develop to a CI MyGet feed, or another CI feed. Then all other branches are manually released then tagged. Read more about this at version increments.
Feature Branches
Feature branches will take the feature branch name and use that as the pre-release tag.
Notice after the feature branch is merged, the version on
develop
is 1.3.0-alpha.3
. This is due to
develop
running in continuous deployment mode.
If you configured develop
to use
continuous delivery the version would still be
1.3.0-alpha.1
and you would have to use release tags to
increment the alpha.1
.
You can see the difference on the feature branch itself, notice the
version is the same before and after the commit on the feature
branch? Only the metadata has changed. If you released the feature
branch artifacts then tagged the commit, the following commit would
increase to -beta.2
.
Pull Request
Because feature branches are most likely pushed to a fork, we are showing the pull request branch name which is created when you submit a pull request
Hotfix Branches
Hotfix branches are used when you need to do a
patch release in GitFlow and are always created off
main
Minor Release Branches
Release branches are used for both major and minor releases for
stabilisation before a release. Release branches are taken off
develop
then merged to both develop
and
main
. Finally main
is tagged with the
released version.
Major Release Branches
Major releases are just like minor releases, the difference is you bump the major in the release branch name.
Support Branches
Support branches are not really covered in GitFlow, but are
essential if you need to maintain multiple major versions at the
same time. You could use support branches for supporting minor
releases as well. If you are just supporting the majors, then name
your branch support/<major>.x
(i.e
support/1.x
), to support minors use
support/<major>.<minor>.x
or
support/<major>.<minor>.0
. (i.e
support/1.3.x
or support/1.3.0
)
Hotfix
Depending on what you name your support branch, you may or may not
need a hotfix branch. Naming it support/1.x
will
automatically bump the patch, if you name it
support/1.3.0
then the version in branch name rule will
kick in and the patch will not automatically bump, meaning
you have to use hotfix branches.
Minor Release
To Contribute
Source
See DocumentationSamples.GitFlowExample
. To update,
modify then run test. Update
https://gist.github.com/JakeGinnivan/cf053d7f5d336ae9f7bb