(c) Vincent Driessen, licensed under CC BY-SA.
develop
and master
.develop
.master
is the latest stable release by definition.master
holds all release versions.develop
is ready to be released.master
develop
master
, then there is confusion and developers either complain about finding only old code or they commit to the wrong branch.develop
to master
and master
to stable
.master
branch is a new release by definition but publishing patches to
past releases leads to release commits which are not on the master
branch.$ git tag # list all tags
$ git tag -a v1.5 -m 'release v1.5' # create annotated tag
$ git push origin v1.5 # share tag to upstream (origin)
$ git push origin --tags # push all tags