# Conventional Commits anwenden

### Disclaimer

<span style="white-space: pre-wrap;">Die </span>****Conventional Commits****<span style="white-space: pre-wrap;"> sind</span> ein Standard zur einheitlichen Benennung von Commit-Nachrichten. Sie helfen Teams, Versionsänderungen besser nachzuvollziehen, automatisch Changelogs zu generieren und semantische Versionierung zu automatisieren.

<span style="white-space: pre-wrap;">Weitere Informationen: </span>[conventionalcommits.org](https://www.conventionalcommits.org/en/v1.0.0/#summary)

---

### Die Vorteile

1. Erleichtert die automatische Generierung von Changelogs
2. <span style="white-space: pre-wrap;">Unterstützt die </span>[semantische Versionierung](https://semver.org/)<span style="white-space: pre-wrap;"> vom Projekt</span>
3. Fördert ein einheitliches und verständliches Commit-Format im Team
4. Verbessert die Zusammenarbeit zwischen Entwicklern, Release-Automatisierungstools und CI/CD-Systemen

---

### Anwendungsformat

Ein konformer Commit folgt diesem Format:

```
Typ(optionaler Scope): Beschreibung
```

Beispiel:

```
feat(auth): added login functionality
```

---

### Commit-Typen

- ****feat****<span style="white-space: pre-wrap;">: Fügt eine neue Funktion hinzu (führt zu einem </span>`<span class="editor-theme-code">minor</span>`-Version-Sprung bei semantischer Versionierung)
- ****fix****<span style="white-space: pre-wrap;">: Behebt einen Bug (führt zu einem </span>`<span class="editor-theme-code">patch</span>`-Version-Sprung)
- ****docs****: Änderungen an der Dokumentation (z. B. README, Kommentare)
- ****style****: Formatierungsänderungen (keine Code-Logik-Änderungen, z. B. Einrückung, Leerzeichen, Semikolon)
- ****refactor****: Codeänderungen ohne Fehlerbehebung oder neue Funktion (z. B. Umstrukturierung)
- ****perf****: Leistungsverbesserungen (Performance-Optimierungen)
- ****test****: Hinzufügen oder Anpassen von Tests
- ****chore****: Wartungsaufgaben, die nichts mit dem Quellcode oder Tests zu tun haben (z. B. Build-Prozess, Abhängigkeiten)

---

### Optional: Scope

Der Scope beschreibt, auf welchen Teil der Codebasis sich der Commit bezieht. Er steht in Klammern direkt hinter dem Typ.

Beispiel:

```
fix(api): resolved error when fetching user data
```

---

### Breaking Changes

<span style="white-space: pre-wrap;">Für Änderungen, die inkompatibel zur bisherigen API sind, wird </span>`<span class="editor-theme-code">BREAKING CHANGE:</span>`<span style="white-space: pre-wrap;"> in der Fußzeile des Commits verwendet.</span>

```
feat(auth): added two-factor authentication
BREAKING CHANGE: login process has been restructured
```