Git Workflow

Getting Started

Install the command line client, download a GUI and have a look at the basic Atlassian tutorial.

GUI

Documentation

  • Atlassian git tutorials - easy and recommended.

  • Official git manual - complete but more advanced.

Clone the SeqAn repository

SeqAn is hosted on GitHub. Execute the following command to get the last sources:

~ # git clone https://github.com/seqan/seqan.git seqan

SeqAn Workflow

The SeqAn workflow is based on the Gitflow workflow by Atlassian.

Develop a feature or fix a bug

Follow the steps in “Mary and John begin new features” and “Mary finishes her feature”.

What to include in a commit

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 --amend or 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