# Git convention

## git commit message

This repository is using
[Angular Commit Conventions](https://gist.github.com/brianclements/841ea7bffdb01346392c)

## git commit schema

git commt messages have to match following schema <type>(<scope>):
<short summary>

## Wie commite ich meine Arbeitsergebnisse

Zur verbesserten Lesbarkeit für Mensch und Maschine, halten wir uns an bestimmte
Konventionen, wie commit messages geschrieben werden. Die Einhaltung dieser
Konventionen wird durch
[commitlint](https://github.com/conventional-changelog/commitlint)
sichergestellt. Wir halten uns an das
[conventional commit format](https://conventionalcommits.org/). Danach wird eine
commit message in drei Teile gebrochen

- Type
- Scope
- Message / Subject

```
type(scope): subject  # multiple scopes are supported (current delimiter options: "/", "\" and ",")
```

Laut Konvention ist die Angabe eines scopes optional. Hier weichen wir ab, in
dem wir festlegen, dass ein scope immer angegeben werden muss. Das macht es in
einem Monorepo einfacher zu erkennen, welches Package der jeweilige commit
angepasst hat.

### Beispiele

```
fix(app-integrator): own user for executing node script
```

```
feat(asservate): added Kraftfahrzeug into select
```

```
refactor(asservate): changed paragraphs and cleanup some code moving varibales to FormHelper
```

## Commit Types

Für den type der commit message orientieren wir uns an die
[Angular Konventionen](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional#type-enum)

- build: Changes that affect the build system or external dependencies
- ci: Changes to our CI configuration files and scripts
- chore: should be replaced by ci or build
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- revert: Undo previous changes
- style: A code style change
- test: Adding missing tests or correcting existing tests

### Commit Scope

Allowed scopes are defined in configuration file:
[dhoe-frontend/commitlint.config.js](https://git.dev.ftcon.de/dhoe/frontend/dhoe-frontend/-/blob/develop/commitlint.config.js)

### Mehr info zum

[Commit Message Format von Angular](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format)
