Skip to content

How to contribute

Sebastian Held edited this page Dec 11, 2018 · 3 revisions

MOSKITO has 3 branches (feature, develop and master):

Feature

Every ‘feature’ should have a unique branch, and it has ‘develop’ as parent (checkout) branch. Any contributions should be done by creating a new feature branch.

$ git checkout -b feature-my_feature_name develop // create the branch and switch to it

$ git push origin feature-my_feature_name // create the branch remotely on GitHub

The time of feature development is unknown, and the feature branch should periodically merge any changes in the develop branch to avoid conflicts. Every push and commit should be done on this branch by the creator of the branch and it is also the responsibility of the creator to check his own feature branch and the current state of the development branch. When the development of the feature is finished, it should be merged back in develop.

$ git checkout develop // change branch and go to develop

$ git merge —no-ff feature-my_feature_name //Create a commit during the merge

$ git push origin develop // push the merge

Each release has to pass all tests before the merge in develop and the branch is deleted when the merge is accepted by the administrator. It shouldn’t have any connections between the feature and the master.

Parent (checkout) Branch: develop

Merge back Branch: develop

Name Convention: Every feature branch should have ‘feature’ as a prefix, ‘-’ (dash) between the prefix and the feature name and ‘_’ (underscore) between the words of the feature name

Example: feature-mass_conservation_2phase

Develop

It’s the parent of feature branches and has the master as the parent. It is a protected branch and only merge request is granted. After one or multiple merges of feature branches in ‘develop’, it’s merged in the master branch.

Parent (checkout) Branch: master

Merge back Branch: master

Master

It is the main branch and is a protected branch. Only merge requests is allowed. It is always the stable version of the code and contains all the history of the project. Each time the develop branch reach the stability defined, it’s merged in the master branch.

Further Github commands

git status Check branch status

git pull origin {branch name} Fetch from and integrate with repository or local branch

git add . Add file contents to the index; the . meaning all files

Clone this wiki locally