Commit Git avec Conventional Commits
Aperçu
Créez des commits git standardisés et sémantiques en utilisant la spécification Conventional Commits. Analysez le diff réel pour déterminer le type, la scope et le message appropriés.
Format Conventional Commit
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types de Commits
| Type | Objectif |
|---|---|
feat |
Nouvelle fonctionnalité |
fix |
Correction de bug |
docs |
Documentation uniquement |
style |
Formatage/style (pas de logique) |
refactor |
Refactorisation de code (pas de feature/fix) |
perf |
Amélioration de performance |
test |
Ajouter/mettre à jour les tests |
build |
Système de build/dépendances |
ci |
Changements CI/config |
chore |
Maintenance/divers |
revert |
Revert de commit |
Changements Cassants
# Point d'exclamation après type/scope
feat!: remove deprecated endpoint
# Footer BREAKING CHANGE
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key behavior changed
Flux de Travail
1. Analyser le Diff
# Si des fichiers sont en staging, utiliser le diff en staging
git diff --staged
# Si rien n'est en staging, utiliser le diff du répertoire de travail
git diff
# Vérifier aussi le statut
git status --porcelain
2. Placer les Fichiers en Staging (si nécessaire)
Si rien n'est en staging ou si vous voulez regrouper les changements différemment :
# Placer des fichiers spécifiques en staging
git add path/to/file1 path/to/file2
# Staging par pattern
git add *.test.*
git add src/components/*
# Staging interactif
git add -p
Ne commitez jamais de secrets (.env, credentials.json, clés privées).
3. Générer le Message de Commit
Analysez le diff pour déterminer :
- Type : Quel type de changement est-ce ?
- Scope : Quelle zone/module est affectée ?
- Description : Résumé d'une ligne de ce qui a changé (présent, mode impératif, <72 caractères)
4. Exécuter le Commit
# Une seule ligne
git commit -m "<type>[scope]: <description>"
# Multi-ligne avec body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
<optional footer>
EOF
)"
Bonnes Pratiques
- Un changement logique par commit
- Présent : "add" au lieu de "added"
- Mode impératif : "fix bug" au lieu de "fixes bug"
- Référencer les issues :
Closes #123,Refs #456 - Garder la description sous 72 caractères
Protocole de Sécurité Git
- NE JAMAIS mettre à jour la config git
- NE JAMAIS exécuter de commandes destructrices (--force, hard reset) sans demande explicite
- NE JAMAIS sauter les hooks (--no-verify) sauf si l'utilisateur le demande
- NE JAMAIS forcer un push sur main/master
- Si le commit échoue à cause d'un hook, corriger et créer un NOUVEAU commit (ne pas amender)