Install the command line client, download a GUI and have a look at the basic Atlassian tutorial.
The master branch is only updated before a new release, either by merging from develop which will create a new minor release [2.x+1.0] or through an emergency fix which will result in a patch level release [2.x.y+1]. Thus, the master branch is always stable and usually identical to the latest release, and the develop branch contains the latest development but might occasionally have breaking changes.
Follow the steps in “Mary and John begin new features” and “Mary finishes her feature”.
- Create a new branch based on develop.
- Perform your changes and commit them onto your feature branch.
- Keep your commit history concise (see below) and write proper commit messages.
- When the development is complete, push the feature branch to your repository on GithHub.
- Make sure that you have signed the Contributor License Agreement
- Create a GitHub pull request to develop.
- Delete your branch once it has been merged.
The git history of your contribution should be concise. Please follow the following hints:
- A single commit should be a logical unit; don’t split a logical change over multiple commits and don’t address different issues in one commit.
- Do not include revisions to your changes in your history, i.e. if you receive comments on your PR, change your previous commits via
git commit --amendor
git rebase, don’t just push more changes onto the history.
- Always split functional changes and style changes, including whitespace changes, into separate commits.
- Follow our style for commit messages.
- If you don’t follow these rules your contribution will be squashed into a single commit by the project member doing the merge.
An example of a good git log:
[FIX-#666] fix bug in sequence i/o module [INTERNAL] remove empty lines [FIX] repair apps that depended on broken behaviour [TEST] add test that triggers #666
An example of a bad git log:
[FIX] fix bug in sequence i/o module [INTERNAL] remove empty line [FIX] forgot to change foo/bar.h revert previous changes revert "revert previous changes" [FIX] correctly this time [INTERNAL] remove another empty line [FIX,TEST] fix apps and add test