Objectif : Fournir une convention simple et légère pour les messages de commit Git. Cela permet de créer un historique de commit explicite, facilitant l'automatisation (comme la génération de CHANGELOGS) et la communication au sein de l'équipe.
Format Général :
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Éléments Clés :
type : Obligatoire. Indique la nature du changement. Les types principaux sont :
feat : Pour une nouvelle fonctionnalité (correspond à MINOR en versioning sémantique).fix : Pour une correction de bug (correspond à PATCH en versioning sémantique).build : Changements qui affectent le système de build ou les dépendances externes.chore : Tâches diverses qui ne modifient pas le code source ou les tests (maintenance, configuration d'outils, etc.).ci : Changements relatifs aux fichiers et scripts de Configuration d'Intégration Continue (CI)docs : Changements affectant uniquement la documentationstyle : Changements qui n'affectent pas la signification du code (espaces, formatage, points-virgules manquants, linting).refactor : Modification du code qui n'ajoute ni fonctionnalité ni ne corrige de bug. C'est une restructuration du code existant.perf : Modification du code qui améliore les performancestest : Ajout de tests manquants ou correction de tests existants.scope : Optionnel. Section du code affectée par le changement (ex: api, ui, core).description : Obligatoire. Description courte et impérative du changement.body : Optionnel. Description plus longue, fournissant le contexte et la motivation du changement.footer(s) : Optionnel. Contient des méta-informations :
BREAKING CHANGE: (ou ! après le type/scope) : Indique un changement qui casse la compatibilité ascendante (correspond à MAJOR en versioning sémantique). Doit expliquer la rupture et comment migrer.Refs: #13, Closes: #42).Avantages :
CHANGELOGS.Exemple Simple :
feat(lang): add polish language
Exemple avec BREAKING CHANGE :
refactor!: drop support for Node 6
BREAKING CHANGE: Refactor to use JavaScript features not available in Node 6.