Pre-Commit: Ein unverzichtbares Tool zur Code-Qualitätssicherung
Was ist Pre-Commit?
pre-commit ist ein Open-Source-Tool, das Git-Hooks nutzt, um vor dem Festschreiben von Änderungen bestimmte Prüfungen und Formatierungen durchzuführen. Entwickler können damit sicherstellen, dass ihr Code bestimmten Standards entspricht, bevor er in das Repository gelangt. Beispiele für solche Checks sind Code-Linting, Formatierung oder Sicherheitschecks.
Vorteile von Pre-Commit
Die Nutzung von pre-commit bietet eine Reihe von Vorteilen:
- Früherkennung von Problemen: Probleme werden bereits lokal erkannt, bevor der Code ins Repository übertragen wird.
- Konsistenter Code-Stil: Durch automatische Formatierungen bleibt der Code-Stil einheitlich.
- Zeiteinsparung: Fehlerhafte Commits werden vermieden, was die Notwendigkeit für spätere Code-Reviews und Korrekturen reduziert.
Einrichtung von Pre-Commit
Die Einrichtung von pre-commit ist einfach und erfordert nur wenige Schritte. Zuerst muss pre-commit installiert werden:
pip install pre-commitDanach wird die Konfigurationsdatei .pre-commit-config.yaml im Wurzelverzeichnis des Projekts angelegt. Die folgende Beispielkonfiguration zeigt gängige Checks:
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- id: check-xml # Überprüft XML-Dateien auf korrekte Syntax
Diese Konfiguration führt verschiedene Checks aus, wie das Entfernen überflüssiger Leerzeichen, die Sicherstellung einer korrekten Dateiende und Validierung von XML-Dateien.
Nachdem die Konfiguration erstellt wurde, kann sie mit dem Befehl pre-commit install aktiviert werden. Pre-commit wird dann automatisch bei jedem Commit ausgeführt.
Unterschied zwischen Pre-Commit und CI/CD
Pre-commit und CI/CD-Tools wie GitHub Actions oder Jenkins verfolgen das gleiche Ziel: die Code-Qualität sicherzustellen. Der Unterschied liegt in der Art und Weise und im Zeitpunkt ihrer Ausführung:
- Pre-Commit: Läuft lokal und stoppt fehlerhafte Commits bevor sie ins Repository gelangen.
- CI/CD: Läuft nach dem Push im Repository und überprüft den Code zentral für das gesamte Team.
Die Kombination aus pre-commit und CI/CD bietet maximale Codequalität, indem sie Fehler frühzeitig lokal und später auch zentral abfängt.
Fazit
Pre-commit ist ein leistungsstarkes Tool, das durch frühzeitige Prüfung und Formatierung die Codequalität erheblich verbessert. Es reduziert Fehler und spart Zeit, indem es Konsistenz sicherstellt und Fehler frühzeitig erkennt. Eine gute Ergänzung zu zentralen CI/CD-Systemen, um qualitativ hochwertigen Code in Teams zu gewährleisten.


