1 Git
Benjamin Goisser edited this page 2026-02-04 18:44:28 +01:00

Workflow

Setup

Make sure your username and email configured correctly:

git config user.name "Nick Fischer"
git config user.email "e12225128@student.tuwien.ac.at"

Rebase when pulling, to avoid creating a merge commit 1

git config pull.rebase true

Setup our git hooks:

git config core.hooksPath .githooks

Force LF:

git config core.eol lf
git config core.autocrlf input

To check all git configurations:

git config --list

Rebases

Say you are working on a feature branch and want to update your feature branch with the new commits from master. Then do:

# make sure to add & commit your changes beforehand
git fetch
git rebase origin/master
# resolve merge conflicts here
git push --force-with-lease

Pull Requests

Important

Do NOT manually create pull requests, use the associated GitLab Tool (see Branches)

  • A pull request is only merged into master once said feature is fully implemented
  • A reviewer must be assigned for each pull request. Merges are only allowed after the tests are passing and the PR was reviewed.
  • Do NOT assign a reviewer while actively developing. Only assign a reviewer when the branch is ready for review.

Naming & Formats

Commit Messages

  • Commit messages are written in English
  • Commit messages are of the form <my commit message> #<issue_id>
  • Commit messages start with a capital letter
  • Commit messages are written in the present tense / imperative; as if the commit message is a direct order to the codebase

Examples:

Fix name validation issue for user #123
Add UI for document creation #312

Branches

Important

Branches should NOT be created manually, please let GitLab create branches for you: grafik

  • A branch is created for each feature which requires code
  • Additionally, a branch for each story (issue task in GitLab) may be created from the feature branch

As a last resort, branches may be created manually. Please uphold GitLabs naming convention:

  • Branches take the form <issue_id>-<small-description>
  • The description should be in kebab-case

Examples:

10-protocols
312-document-creation

Tags

  • After completing each milestone (e.g. after each sprint), the current master commit is tagged.
  • Git tags should be created as annotated tags, in the following form git tag -a v0.<ms>.0 -m "Milestone <ms>". E.g. git tag -a v0.2.0 -m "Milestone 2". Or create the tag in GitLab.
  • After creating a tag locally, it has to be pushed using git push origin v0.<ms>.0

Helpful Resources