Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Commit Nachrichten (Neues Schema)
- Wir verwenden ein einheitliches Format für Commit-Nachrichten, angelehnt
- an [Conventional Commits](https://www.conventionalcommits.org/).
- Dadurch sind Commit Messages automatisch für **Changelog-Generierung, Release Notes und semantische Versionierung**
- verwendbar.
- ## Summary line (erste Zeile)
- Eine Commit-Message besteht aus drei Teilen:
- ```
- <type>(<scope>): <kurze beschreibung>
- ```
- * **`<type>`** → Schlüsselwort (Art der Änderung)
- * **`<scope>`** *(optional)* → Bereich/Modul, das geändert wurde
- * **`<beschreibung>`** → kurze, imperative Beschreibung (max. 72 Zeichen)
- 👉 Schreibe immer so, als ob du den Satz mit *"If applied, this commit will ..."* vervollständigst.
- ---
- ## Types (Keywords)
- | Keyword | Wann benutzen |
- |------------|----------------------------------------------------------------|
- | `fix` | Bugfix – behebt ein fehlerhaftes Verhalten |
- | `feat` | Neue Funktion oder Fähigkeit (Feature) |
- | `chore` | Wartung, Tooling, Buildsystem, Dependency-Updates |
- | `docs` | Dokumentationsänderungen |
- | `refactor` | Umstrukturierung des Codes ohne Änderung des Verhaltens |
- | `perf` | Performance-Optimierungen |
- | `test` | Hinzufügen/Ändern von Tests |
- | `style` | Code-Formatierungen, Whitespaces, Linting, ohne Logik-Änderung |
- | `ci` | Änderungen an der CI/CD-Pipeline |
- | `revert` | Zurücksetzen eines früheren Commits |
- ---
- ## Zusatz-Flags
- Die Flags können zusätzlich in der **Beschreibung** oder **Body** stehen:
- * **`BREAKING CHANGE:`** → muss am Anfang des Body stehen, wenn sich API/Verhalten ändert
- * **`SECURITY:`** → markiert sicherheitsrelevante Fixes
- * **`WIP`** → für unfertige Commits, die noch nicht gemergt werden sollen
- ---
- ## Regeln
- * `<scope>` ist **optional** → nutze es, wenn sich die Änderung klar auf ein Modul, Package, oder Service bezieht.
- Beispiele: `auth`, `api`, `user-service`, `db`, `ui`
- * Wenn kein Scope sinnvoll ist, einfach weglassen:
- `fix: correct typo in error message`
- * Beschreibung **im Imperativ** formulieren:
- ❌ „Fixed login bug“
- ✅ „fix login bug“
- ---
- ## Beispiele
- ### `fix`
- ```
- fix(auth): prevent login with expired token
- ```
- → Bugfix im Authentifizierungsmodul.
- ```
- fix: correct typo in CLI help output
- ```
- → Allgemeiner Fix ohne Modulbezug.
- ---
- ### `feat`
- ```
- feat(api): add pagination support for /users endpoint
- ```
- → Neue Funktion für die User-API.
- ```
- feat: allow dark mode toggle in settings
- ```
- → Neue UI-Funktion, ohne Scope.
- ---
- ### `chore`
- ```
- chore: update dependencies to latest versions
- ```
- → Allgemeine Wartung.
- ```
- chore(ci): switch to GitHub Actions for test pipeline
- ```
- → Änderung an der CI.
- ---
- ### `docs`
- ```
- docs(readme): add usage examples for CLI tool
- ```
- → Nur Dokumentation.
- ---
- ### `refactor`
- ```
- refactor(db): extract query builder into separate class
- ```
- → Code-Umbau, gleiches Verhalten.
- ---
- ### `perf`
- ```
- perf(cache): reduce lookup time by using hashmap
- ```
- → Performance-Verbesserung.
- ---
- ### `test`
- ```
- test(user-service): add unit tests for registration flow
- ```
- → Tests hinzugefügt.
- ---
- ### `style`
- ```
- style: reformat code with prettier
- ```
- → Nur Formatierung.
- ---
- ### `ci`
- ```
- ci: add linter step to pipeline
- ```
- → Änderung an der Pipeline.
- ---
- ### `revert`
- ```
- revert: revert "feat(api): add pagination support"
- ```
- → Rollback eines Features.
- ---
- ### Mit **BREAKING CHANGE**
- ```
- feat(api): switch /users response format to JSON:API
- BREAKING CHANGE: clients must update parsing logic to support new format
- ```
- ## Specification
- The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
- Commits MUST be prefixed with a type, which consists of a noun, feat, fix, etc., followed by the OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space.
- The type feat MUST be used when a commit adds a new feature to your application or library.
- The type fix MUST be used when a commit represents a bug fix for your application.
- A scope MAY be provided after a type. A scope MUST consist of a noun describing a section of the codebase surrounded by parenthesis, e.g., fix(parser):
- A description MUST immediately follow the colon and space after the type/scope prefix. The description is a short summary of the code changes, e.g., fix: array parsing issue when multiple spaces were contained in string.
- A longer commit body MAY be provided after the short description, providing additional contextual information about the code changes. The body MUST begin one blank line after the description.
- A commit body is free-form and MAY consist of any number of newline separated paragraphs.
- One or more footers MAY be provided one blank line after the body. Each footer MUST consist of a word token, followed by either a :<space> or <space># separator, followed by a string value (this is inspired by the git trailer convention).
- A footer’s token MUST use - in place of whitespace characters, e.g., Acked-by (this helps differentiate the footer section from a multi-paragraph body). An exception is made for BREAKING CHANGE, which MAY also be used as a token.
- A footer’s value MAY contain spaces and newlines, and parsing MUST terminate when the next valid footer token/separator pair is observed.
- Breaking changes MUST be indicated in the type/scope prefix of a commit, or as an entry in the footer.
- If included as a footer, a breaking change MUST consist of the uppercase text BREAKING CHANGE, followed by a colon, space, and description, e.g., BREAKING CHANGE: environment variables now take precedence over config files.
- If included in the type/scope prefix, breaking changes MUST be indicated by a ! immediately before the :. If ! is used, BREAKING CHANGE: MAY be omitted from the footer section, and the commit description SHALL be used to describe the breaking change.
- Types other than feat and fix MAY be used in your commit messages, e.g., docs: update ref docs.
- The units of information that make up Conventional Commits MUST NOT be treated as case sensitive by implementors, with the exception of BREAKING CHANGE which MUST be uppercase.
- BREAKING-CHANGE MUST be synonymous with BREAKING CHANGE, when used as a token in a footer.
- # Issues automatisch über Commit schließen
- Es ist möglich, Issues (Tickets) direkt über die Kommentarfunktion während des Commits zu schließen.
- Folgende Schlüsselwörter (keywords) können benutzt werden:
- Close, Closes, Closed, Closing, close, closes, closed, closing
- Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing
- Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving
- Implement, Implements, Implemented, Implementing, implement, implements, implemented, implementing
- ## Wichtig - Folgende Regeln überschreiben alles, was zuvor geschrieben wurde:
- Erwähne, falls tests bearbeitet wurden, dass diese auch aktualisiert wurden.
- Versuche zu erkennen, ob eher hauptsächlich der Test oder du Funktion bearbeitet werden sole.
- Füge am Ende der Commit-Nachricht ein passendes Emoji hinzu. Es muss immer genau ein passendes Emoji angegeben werden.
Advertisement
Add Comment
Please, Sign In to add comment