Git Hooks verstehen
Entdecken Sie die verschiedenen Arten von Git Hooks und ihre Ausführungspunkte im Git-Workflow.
Git Hooks verstehen ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 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.
Was sind Git Hooks?
Willkommen bei Git Hooks! Git Hooks sind leistungsstarke, anpassbare Skripte, die Git automatisch vor oder nach Ereignissen wie Commits, Pushes oder dem Empfangen gepushter Commits ausführt.
Sie können sie sich als automatisierte Prüfungen oder Aktionen in Ihrem Git-Workflow vorstellen. Sie helfen dabei, Projektstandards durchzusetzen, Aufgaben zu automatisieren und andere Systeme zu integrieren.
Wo Hooks gespeichert sind
Jedes Git-Repository enthält ein Verzeichnis .git/hooks. Darin finden Sie Beispielskripte für Hooks (die normalerweise mit .sample enden).
Um einen Hook zu aktivieren, entfernen Sie einfach die Erweiterung .sample und machen die Datei ausführbar. Git führt ihn dann zum passenden Zeitpunkt aus.
- Speicherort:
.git/hooks/ - Dateien: Shell-Skripte (Bash, Python, Ruby usw.)
- Aktivierung: Umbenennen und ausführbar machen
Clientseitig oder serverseitig
Git Hooks werden je nach ihrem Ausführungsort in zwei Haupttypen unterteilt:
- Clientseitige Hooks: Sie werden auf Ihrem lokalen Rechner ausgeführt (z. B. vor einem Commit oder Rebase). Sie dienen der Automatisierung Ihres persönlichen Workflows und der Durchsetzung lokaler Richtlinien.
- Serverseitige Hooks: Sie werden auf dem entfernten Git-Server ausgeführt (z. B. wenn Sie Code in ein gemeinsam genutztes Repository pushen). Sie setzen projektweite Richtlinien für alle Beteiligten durch.
Clientseitiger Hook: pre-commit
Der Hook pre-commit ist einer der häufigsten clientseitigen Hooks. Er wird *vor* der offiziellen Erstellung eines Commits durch Git ausgeführt.
Wenn das Skript pre-commit mit einem Status ungleich null beendet wird, bricht Git den Commit ab. Das eignet sich ideal für Aufgaben wie:
- Code-Linting (Prüfen auf Stilfehler)
- Ausführen von Unit-Tests
- Prüfen auf große Dateien oder vertrauliche Daten
Clientseitiger Hook: commit-msg
Der Hook commit-msg wird *nach* der Eingabe Ihrer Commit-Nachricht, aber *vor* dem Abschluss des Commits ausgeführt.
Dieser Hook ist nützlich, um sicherzustellen, dass Ihre Commit-Nachrichten bestimmten Konventionen oder Formaten entsprechen. Er kann beispielsweise prüfen, ob:
- Die Nachricht mit einer Ticket-ID beginnt (z. B.
[JIRA-123]) - Die Nachrichtenlänge innerhalb der festgelegten Grenzen liegt
- Bestimmte Schlüsselwörter vorhanden sind oder fehlen
Clientseitiger Hook: post-commit
Der Hook post-commit wird *unmittelbar nach* der erfolgreichen Erstellung eines Commits ausgeführt.
Im Gegensatz zu pre-commit oder commit-msg kann dieser Hook das Ergebnis des Commits nicht mehr ändern. Er wird häufig für Benachrichtigungen oder Integrationen verwendet, zum Beispiel:
- Teammitglieder benachrichtigen
- Ein Projektmanagement-Tool aktualisieren
- Einen Continuous-Integration-(CI-)Build auslösen (obwohl dies häufiger mit serverseitigen Hooks geschieht)
Serverseitiger Hook: pre-receive
Bei serverseitigen Hooks wird pre-receive ausgeführt, bevor Referenzen wie Branches oder Tags im Remote-Repository aktualisiert werden.
Dieser Hook eignet sich besonders, um wichtige Richtlinien für das Repository durchzusetzen, zum Beispiel:
- Direkte Pushes in den Branch
mainverhindern - Sicherstellen, dass alle Commits signiert sind
- Die Identität des Committers überprüfen
Wenn dieser Hook mit einem Status ungleich null beendet wird, wird der gesamte Push abgelehnt.
Serverseitiger Hook: post-receive
Der Hook post-receive wird ausgeführt, nachdem ein Push die Referenzen im Remote-Repository erfolgreich aktualisiert hat.
Ähnlich wie post-commit kann dieser Hook den Push nicht ablehnen. Er wird häufig verwendet für:
- Das Auslösen von CI/CD-Pipelines
- Das Aktualisieren externer Issue-Tracker
- Das Senden von E-Mail-Benachrichtigungen an das Team
- Das Bereitstellen von Code in einer Staging-Umgebung
Einen einfachen Hook erstellen
Um einen Hook zu erstellen, legen Sie einfach eine Datei mit dem Namen des Hooks (z. B. pre-commit) in Ihrem Verzeichnis .git/hooks/ an. Erstellen wir einen ganz einfachen Hook:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Hooks ausführbar machen
Nachdem Sie Ihr Hook-Skript erstellt haben, müssen Sie es ausführbar machen. Andernfalls führt Git es nicht aus. Verwenden Sie dazu den Befehl chmod in Ihrem Terminal:
chmod +x .git/hooks/pre-commit
Ab jetzt führt Git dieses Skript jedes Mal aus, wenn Sie einen Commit erstellen!
Schnelltest: Zeitpunkt der Hooks
Git-Hooks werden zu bestimmten Zeitpunkten in Ihrem Workflow ausgeführt. Wenn Sie den Zeitpunkt verstehen, können Sie sie gezielt einsetzen.
Zusammenfassung: Git-Hooks verstehen
Sie haben den ersten Schritt in die leistungsstarke Welt der Git-Hooks gemacht!
- Git-Hooks sind Skripte, die Aktionen während Git-Ereignissen automatisieren.
- Sie befinden sich im Verzeichnis
.git/hooks/Ihres Repositorys. - Hooks sind entweder clientseitig (auf dem lokalen Rechner) oder serverseitig (im Remote-Repository).
- Wichtige Hooks wie
pre-commitundpre-receivekönnen Richtlinien durchsetzen, indem sie Vorgänge blockieren. - Hooks wie
post-commitundpost-receivedienen Benachrichtigungen oder Integrationen nach einer Aktion.
Als Nächstes sehen wir uns die praktische Implementierung bestimmter Hooks anhand von Beispielen an!
Häufig gestellte Fragen
Ist die Lektion „Git Hooks verstehen“ kostenlos?
Ja — der vollständige Text von „Git Hooks verstehen“ 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 „Git Hooks verstehen“?
Entdecken Sie die verschiedenen Arten von Git Hooks und ihre Ausführungspunkte im Git-Workflow. 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 1 von 4.
Wie lange dauert die Lektion „Git Hooks verstehen“?
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.