Git Academy

Avancé · 5 min de lecture

Les hooks Git : automatiser tes vérifications

Lancer le linter avant chaque commit, vérifier le format du message, bloquer les push sur main.

Ce qu'est un hook

Un script exécutable que Git lance à un moment précis : pre-commit, commit-msg, pre-push… S'il sort en erreur, l'action est annulée.

Les partager avec l'équipe

.git/hooks n'est pas versionné. Mets les scripts dans un dossier versionné et indique-le à Git (des outils comme Husky ou Lefthook le font pour toi).

Sans risque
$ mkdir .githooks
$ git config core.hooksPath .githooks

Exemple : pas de commit sur main

Un hook pre-commit qui refuse les commits faits directement sur main. Rends le fichier exécutable (chmod +x).

Sans risque
#!/bin/sh
$ [ "$(git branch --show-current)" = "main" ] && echo "No commit on main" && exit 1
$ exit 0

Contourner un hook

--no-verify saute pre-commit et commit-msg. Les hooks sont un filet de sécurité, pas une mesure de sécurité : protège aussi les branches côté serveur.