Par Anonyme (non vérifié) , 29 avril 2026

Hooks côté client

Les hooks sont des scripts exécutables dans .git/hooks/ (ou là où pointe core.hooksPath). Git les invoque à des moments bien définis.

pre-commit

#!/usr/bin/env bash
# .git/hooks/pre-commit
set -e
files=$(git diff --cached --name-only --diff-filter=ACMR | grep '\.py$' || true)
[ -z "$files" ] && exit 0
ruff check $files
ruff format --check $files

prepare-commit-msg

#!/usr/bin/env bash
MSG_FILE=$1
SOURCE=$2
[ "$SOURCE" = "message" ] && exit 0
branch=$(git symbolic-ref --short HEAD)
ticket=$(echo "$branch" | grep -oE '[A-Z]+-[0-9]+' || true)
[ -n "$ticket" ] && sed -i.bak "1s/^/[$ticket] /" "$MSG_FILE"

commit-msg

#!/usr/bin/env bash
pattern='^(feat|fix|docs|refactor|test|chore)(\(.+\))?: .{1,72}'
grep -qE "$pattern" "$1" || {
  echo "Le message du commit doit suivre Conventional Commits."
  exit 1
}

Partager les hooks

git config core.hooksPath .githooks

Contournement

Passez --no-verify pour sauter les hooks pre-commit et commit-msg. Réservez aux urgences.

Erreurs courantes

Des hooks lents frustrent les développeurs et sont contournés. Gardez-les sous une seconde quand possible.