---
# System prepended metadata

title: Git Workflow

---

# Git Workflow
* Commit style summary ([source](https://cbea.ms/git-commit/)):
  * Separate subject from body with a blank line.
  * Limit the subject line to 50 characters.
  * Capitalize the subject line.
  * Do not end the subject line with a period.
  * Use the imperative mood in the subject line.
  * Wrap the body at 72 characters.
  * Use the body to explain what and why vs. how.
* Commits should be [atomic](https://www.freshconsulting.com/insights/blog/atomic-commits/):
  * An atomic commit always leaves the code in a compilable state.
  * Make commits often and small.
* Branches: 
  * Namn: Issue ID + issue name in `kebab-case-like-this`, e.g. `18-system-scheduling` (*18* is the issue ID from GitHub, *System Scheduling* is the name of the issue).
  * Every task is worked on in a separate branch and is merged back into master through a pull request (PR) that is reviewed.
* All features, bugs and milestones are stored on GitHub within the Project, and is linked to the code and all PRs.
* The `master` branch is protected and can only be modified through reviewed PRs. 
