Pre-Commit- und Post-Merge-Hooks
Setzen Sie praktische Beispiele für Pre-Commit-Hooks zum Linting und Post-Merge-Hooks für Benachrichtigungen um.
Pre-Commit- und Post-Merge-Hooks ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Einführung in praktische Git-Hooks
In der vorherigen Lektion haben Sie Git-Hooks und ihre verschiedenen Arten kennengelernt. Jetzt wird es praktisch!
Wir beschäftigen uns mit der Implementierung von zwei leistungsstarken Hooks: pre-commit und post-merge. Damit können Sie Prüfungen vor einem Commit und Aktionen nach einem Merge automatisieren.
Pre-commit: Ihr Qualitätstor
Der Hook pre-commit wird vor einem Commit-Vorgang ausgeführt, nachdem Sie Ihre Änderungen mit git add für den Commit vorgemerkt haben.
- Er eignet sich ideal, um Codequalität und Stilvorgaben durchzusetzen.
- Sie können ihn verwenden, um Linter, Style-Checker oder sogar einfache Unit-Tests auszuführen.
- Wenn das Skript mit einem Status ungleich null beendet wird, wird der Commit automatisch abgebrochen.
So wird sichergestellt, dass nur hochwertiger und regelkonformer Code in Ihr Repository gelangt.
Pre-commit-Hook einrichten
Um einen pre-commit-Hook zu erstellen, müssen Sie in Ihrem Projektverzeichnis .git/hooks/ eine ausführbare Datei mit dem Namen pre-commit anlegen.
Git stellt Beispiel-Hooks mit der Erweiterung .sample bereit. Entfernen Sie diese Erweiterung und fügen Sie Ihr eigenes Skript hinzu.
Denken Sie daran, die Datei mit folgendem Befehl ausführbar zu machen: chmod +x .git/hooks/pre-commit
Beispiel: Commits mit „TODO“ verhindern
Erstellen wir einen einfachen pre-commit-Hook, der verhindert, dass Sie Dateien committen, die noch das Wort "TODO" enthalten. So wird häufig sichergestellt, dass keine unfertigen Aufgaben in die Codebasis gelangen.
Das Skript überprüft alle für den Commit vorgemerkten Dateien auf dieses Schlüsselwort. Wenn es gefunden wird, bricht das Skript den Commit ab.
Pre-commit-Hook: Keine TODOs!
Hier ist ein einfaches Shell-Skript für Ihre Datei .git/hooks/pre-commit. Es überprüft vorgemerkte .txt-Dateien auf das Wort "TODO".
Schritte:
.git/hooks/pre-commiterstellen- Diesen Code einfügen
chmod +x .git/hooks/pre-commitausführen
#!/bin/sh
# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
if grep -q "TODO" "$file"; then
echo "ERROR: Found 'TODO' in staged file: $file"
echo "Please remove TODOs before committing."
exit 1
fi
done
exit 0Pre-commit-Hook testen
Erstellen Sie zum Testen dieses Hooks zunächst eine Datei (z. B. test.txt) und fügen Sie "TODO: Finish this" ein. Versuchen Sie anschließend, die Datei zu committen:
git add test.txtgit commit -m "Add test file"
Der Commit sollte abgebrochen werden, und Sie sehen die Fehlermeldung Ihres Hooks. Entfernen Sie "TODO" aus test.txt, dann wird der Commit erfolgreich ausgeführt!
Post-merge: Aktionen nach Merges automatisieren
Der Hook post-merge wird automatisch ausgeführt, nachdem ein Befehl git merge erfolgreich abgeschlossen wurde.
- Er eignet sich für Integrationsaufgaben, die nach dem Zusammenführen von Code ausgeführt werden sollen.
- Beispiele sind die Benachrichtigung von Teammitgliedern, das Aktualisieren von Projektabhängigkeiten (z. B.
npm install) oder das Ausführen eines Build-Skripts. - Im Gegensatz zu pre-commit beeinflusst dieser Hook das Ergebnis des Merges nicht.
So lassen sich Prozesse nach einem Merge hervorragend automatisieren.
Post-merge-Hook einrichten
Ähnlich wie bei pre-commit erstellen Sie eine Datei mit dem Namen post-merge in Ihrem Verzeichnis .git/hooks/.
Stellen Sie erneut sicher, dass es sich um eine ausführbare Datei handelt:
chmod +x .git/hooks/post-merge
Dieses Skript wird dann jedes Mal ausgeführt, wenn ein Merge in Ihrem Repository abgeschlossen wird.
Beispiel: Benachrichtigung über abgeschlossenen Merge
Erstellen wir einen post-merge-Hook, der einfach eine Meldung in der Konsole ausgibt und damit bestätigt, dass gerade ein Merge stattgefunden hat. In der Praxis könnte er eine CI/CD-Pipeline auslösen oder eine Benachrichtigung an eine Chat-Anwendung senden.
Post-merge-Hook: Benachrichtigung
Hier ist ein einfaches Shell-Skript für Ihre Datei .git/hooks/post-merge. Es gibt eine Bestätigungsmeldung aus.
Schritte:
.git/hooks/post-mergeerstellen- Diesen Code einfügen
chmod +x .git/hooks/post-mergeausführen
#!/bin/sh
# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"
exit 0Hook-Check: Pre-commit oder Post-merge
Welche der folgenden Aufgaben würde typischerweise von einem pre-commit-Hook übernommen?
Zusammenfassung: Hooks in Aktion
Sehr gut! In dieser Lektion haben Sie gelernt, praktische Git-Hooks zu implementieren.
- Pre-commit-Hooks dienen als Qualitätstor und führen Prüfungen wie Linting oder Tests vor einem Commit aus.
- Post-merge-Hooks automatisieren Aktionen nach einem Merge, etwa Benachrichtigungen oder das Aktualisieren von Abhängigkeiten.
Diese Hooks sind leistungsstarke Werkzeuge, um Standards durchzusetzen und Workflows in Ihrem Git-Repository zu automatisieren. Entdecken Sie weitere Hook-Typen, um Ihre Git-Erfahrung noch besser anzupassen!
Häufig gestellte Fragen
Ist die Lektion „Pre-Commit- und Post-Merge-Hooks“ kostenlos?
Ja — der vollständige Text von „Pre-Commit- und Post-Merge-Hooks“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Pre-Commit- und Post-Merge-Hooks“?
Setzen Sie praktische Beispiele für Pre-Commit-Hooks zum Linting und Post-Merge-Hooks für Benachrichtigungen um. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Pre-Commit- und Post-Merge-Hooks“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Git Hooks verstehen
- Pre-Commit- und Post-Merge-Hooks
- Git-Konfiguration anpassen
- Hooks mit Husky teilen