Un bon message de commit :
- Explique le QUOI et le POURQUOI (pas le comment)
- Aide les autres développeurs à comprendre l'historique
- Facilite le debugging et le code review
- Rend le projet professionnel
Pensez-y comme ça : Vous revenez sur le code 6 mois plus tard. Votre message de commit vous aide-t-il à comprendre ce qui a été fait et pourquoi ?
Type: Courte description (50 caractères max)
Explication détaillée si nécessaire (72 caractères par ligne)
- Point clé 1
- Point clé 2
- Point clé 3
- Séparer le sujet du corps avec une ligne vide
- Limiter le sujet à 50 caractères
- Capitaliser la première lettre du sujet
- Ne pas terminer le sujet par un point
- Utiliser l'impératif dans le sujet
- Limiter le corps à 72 caractères par ligne
- Expliquer le QUOI et le POURQUOI dans le corps
git commit -m "Ajouter validation du formulaire de connexion"
git commit -m "Corriger le bug d'affichage sur mobile"
git commit -m "Refactoriser la fonction de calcul de prix"
git commit -m "Supprimer le code mort dans auth.js"
git commit -m "Mettre à jour les dépendances de sécurité"git commit -m "Optimiser les requêtes de base de données
Les requêtes N+1 causaient des problèmes de performance
sur la page des utilisateurs. Cette solution utilise
eager loading pour réduire le nombre de requêtes.
Performance avant: 150ms
Performance après: 25ms"git commit -m "Ajouter authentification à deux facteurs
Implémente 2FA via TOTP pour améliorer la sécurité.
Les utilisateurs peuvent activer 2FA dans leurs paramètres.
- Ajouter génération de codes QR
- Implémenter vérification TOTP
- Ajouter codes de backup
Fixes #234"# Référencer une issue
git commit -m "Corriger crash lors de l'upload (fixes #123)"
# Fermer automatiquement une issue
git commit -m "Ajouter export PDF (closes #456)"
# Référencer plusieurs issues
git commit -m "Améliorer performance (related to #789, #790)"# ❌ MAUVAIS
git commit -m "update"
git commit -m "fix"
git commit -m "changes"
git commit -m "stuff"
git commit -m "work in progress"
git commit -m "."Pourquoi c'est mauvais : Impossible de comprendre ce qui a été fait.
✅ MIEUX :
git commit -m "Mettre à jour la version de React à 18.2"
git commit -m "Corriger bug de validation email"
git commit -m "Modifier le style du header"# ❌ MAUVAIS
git commit -m "Ajouter la fonctionnalité de connexion avec validation des champs, gestion des erreurs, redirection après succès et affichage des messages d'erreur"Pourquoi c'est mauvais : Difficile à lire dans git log --oneline.
✅ MIEUX :
git commit -m "Ajouter page de connexion avec validation
- Validation des champs email et password
- Gestion des erreurs serveur
- Redirection vers dashboard après succès
- Messages d'erreur utilisateur-friendly"# ❌ MAUVAIS
git commit -m "oops"
git commit -m "fix bug"
git commit -m "test"
git commit -m "final version"
git commit -m "really final version this time"✅ MIEUX :
git commit -m "Corriger typo dans message d'erreur"
git commit -m "Corriger validation du format de date"
git commit -m "Ajouter tests unitaires pour auth"Utiliser des préfixes pour catégoriser vos commits :
feat: Ajouter nouvelle fonctionnalité
fix: Corriger un bug
docs: Modifier la documentation
style: Changements de style (format, espace)
refactor: Refactorisation du code
test: Ajouter ou modifier des tests
chore: Tâches de maintenance
perf: Amélioration de performancegit commit -m "feat: Ajouter export CSV des utilisateurs"
git commit -m "fix: Corriger calcul de TVA"
git commit -m "docs: Mettre à jour le README"
git commit -m "style: Formater le code selon Prettier"
git commit -m "refactor: Extraire logique de validation"
git commit -m "test: Ajouter tests pour login"
git commit -m "chore: Mettre à jour les dépendances"
git commit -m "perf: Optimiser chargement des images"Certaines équipes utilisent des emojis pour plus de visibilité :
✨ feat: Nouvelle fonctionnalité
🐛 fix: Bug fix
📝 docs: Documentation
💄 style: UI/Style
♻️ refactor: Refactorisation
✅ test: Tests
🔧 chore: Configuration
⚡ perf: Performance
🔒 security: Sécuritégit commit -m "✨ Ajouter dark mode"
git commit -m "🐛 Corriger bug de pagination"
git commit -m "📝 Ajouter documentation API"
git commit -m "⚡ Optimiser temps de chargement"feat: [Titre de la fonctionnalité]
[Description de ce que fait la fonctionnalité]
[Pourquoi elle a été ajoutée]
[Détails techniques importants si nécessaire]
fix: [Description du bug corrigé]
Le bug se produisait quand [contexte]
Solution: [explication courte]
Fixes #[numéro-issue]
refactor: [Partie du code refactorisée]
Raison: [pourquoi le refactoring était nécessaire]
Changements:
- [changement 1]
- [changement 2]
Avant de commiter, posez-vous ces questions :
- Est-ce que quelqu'un peut comprendre ce que j'ai fait sans lire le code ?
- Est-ce que j'ai expliqué le POURQUOI, pas seulement le QUOI ?
- Est-ce que le message est utile dans 6 mois ?
- Est-ce que le sujet fait moins de 50 caractères ?
- Est-ce que j'utilise l'impératif ? ("Ajouter" pas "Ajouté" ou "Ajoute")
Aide à écrire des commits structurés :
npm install -g commitizen
git cz # Au lieu de git commitVérifie que vos messages suivent les conventions :
npm install --save-dev @commitlint/cli @commitlint/config-conventionalmm: fix race in anon_vma prepare/reuse patch
The locking in anon_vma_prepare() and anon_vma_fork() is
complicated due to the need to handle private vma lists.
feat: add useTransition hook
Adds a new hook to help coordinate with Concurrent Mode.
The hook returns an array with a startTransition function
and a pending state indicator.
The startTransition function wraps state updates that may
cause a component to suspend.
fix: prevent multiple language service restarts
Fixes a race condition that could cause TypeScript language
service to restart multiple times when switching between
branches.
Fixes #12345
# Format court
git commit -m "Type: Description courte et précise"
# Format complet
git commit -m "Type: Description courte et précise
Explication détaillée du changement et de sa raison.
- Point important 1
- Point important 2
Fixes #123"Transformez ces mauvais messages en bons messages :
-
❌
git commit -m "update"- ✅ Votre version : ****_****
-
❌
git commit -m "fix bug"- ✅ Votre version : ****_****
-
❌
git commit -m "changes to login"- ✅ Votre version : ****_****
Voir les solutions
Remember: Un bon message de commit est un cadeau à votre futur moi et à votre équipe !