LinuxGSM uses the GitFlow method (mostly) of releases. Relying on
For further reading on the GitFlow model read the following article.
master branch will be the stable release branch. The
develop branch is for developing stable code. All code is to be developed in a
feature branch or
hotfix for urgent fixes.
master branch is where the stable release is kept. Only code that has gone via the
develop can be merged here and goes through a release process. It is very important that code there has been tested and is stable as it is used in production.
develop branch brings together all the
feature branches ready to be tested to become the next stable release. Developers should use
develop as the base when creating a branch.
A feature branch is a development branch that is used while code is being actively worked on by developers. A feature branch should normally relate to an existing issue in GitHub. The feature branch should refer to the issue number and a word or two describing the issue, allowing other developers to know what issue branch related to and helps with housekeeping.
Once a feature is ready to be merged in to
develop a pull request is to be raised to allow the feature to be reviewed.
hotfix branch is identical to the
feature branch but instead is used for urgent fixes that need to be applied to master.
When code from the
develop branch is ready for release it is split off into a
release branch will not have any more features added to it. It is then tested and any bugs fixed it will be released into
master and tagged as a version number. The release will also be merged back into the
It is also a good idea to start using Git Kracken as the git client. It is a little more complex that GitHub Desktop but will give you a much better understanding of the development process.