Gitmoji est une convention de nommage pour les commit Git, qui utilise des Emojis pour des commits visuels.
Commits Conventionnels
La spécification de Commits Conventionnels est une convention basique pour des messages de commit propres. Elle fournit un ensemble simple de règles pour créer un historique de commit explicite, ce qui facilite l’écriture d’outils automatisés. Cette convention suit SemVer (Gestion sémantique de version), en décrivant les fonctionnalités, les correctifs et les modifications importantes apportées aux messages de commit.
Structure
Voilà à quoi doit correspondre la structure d’un message de commit qui respecte la convention :
<type>[étendue optionnelle]: <description>
[corps optionnel]
[pied optionnel]
Exemple
Voici un exemple de commit complet qui respecte la spécification de Commits Conventionnels
fix(cart): corriger le calcul de la TVA pour les produits exportés
Le calcul ne prenait pas en compte le taux spécifique de 0% pour les
ventes hors UE, ce qui entraînait des facturations erronées.
Ref: #123
Liste de types
| Type | Utilisation |
|---|---|
| feat | Ajout d'une nouvelle fonctionnalité |
| fix | Correction d'un bug |
| perf | Amélioration des performances |
| refactor | Refactorisation du code sans ajout de fonctionnalité ni correction de bug |
| style | Modifications de style (formatage, espaces, etc.) sans impact sur le code |
| test | Ajout ou modification de tests |
| docs | Modifications de la documentation |
| build | Modifications liées au processus de build ou aux dépendances |
| ci | Modifications liées à l'intégration continue ou au déploiement |
| chore | Tâches diverses qui n'impactent pas le code source |
| revert | Revert d'un commit précédent |
| <type>! | Commit cassant |
Gitmoji
Gitmoji est une convention de commit qui utilise des emojis pour indiquer le type de changement effectué dans un commit. Ils doivent être utilisés en complément des commits de types pour ajouter une touche visuelle et rendre les messages de commit plus expressifs. Ils peuvent également préciser le type de changement de manière plus intuitive.
Liste des Gitmojis les plus courants
Une liste d’émojis pouvant être utilisés en complément des types de commits conventionnels vus précédemment :
| Gitmoji | Signification | Type |
|---|---|---|
| ✨ | Ajout d'une nouvelle fonctionnalité | feat |
| 🐛 | Correction d'un bug | fix |
| ⚡️ | Amélioration des performances | perf |
| ♻️ | Refactorisation du code | refactor |
| 💄 | Modifications de style | style |
| ✅ | Ajout ou modification de tests | test |
| 📝 | Modifications de la documentation | docs |
| 🔨 | Modifications liées au processus de build | build |
| 👷 | Modifications liées à l'intégration continue ou au déploiement | ci |
| ⏪ | Revert d'un commit précédent | revert |
Autres Gitmojis
Des gitmojis supplémentaires peuvent être utilisés pour des cas spécifiques. Ils servent à préciser davantage le type de changement ou à indiquer des changements spécifiques qui ne sont pas couverts par les types de commits conventionnels.
Fonctionnalités
| Gitmoji | Signification | Type |
|---|---|---|
| 💥 | Changement destructif | feat! |
| ♿️ | Amélioration de l'accessibilité | feat |
| 🔍️ | Changement lié au SEO | feat |
| 🌐 | Traduction et localisation | feat |
| 👔 | Ajout ou mise à jour liée à la logique métier | feat |
| 📈 | Ajout ou mise à jour de métriques | feat |
| 🗃️ | Changement lié à la base de données | feat |
| 🏷️ | Ajout ou mise à jour de types | feat |
| 🦖 | Ajout de rétrocompatibilité | feat |
| 🌱 | Ajout ou mise à jour de fichiers d'amorçage (seeding) | feat |
| 🛂 | Ajout ou mise à jour liée à l'autorisation | feat |
| 💸 | Modification liée à l'argent | feat |
| 🦺 | Ajout ou mise à jour liée à la validation de données | feat |
| 🧵 | Ajout ou mise à jour de code lié au multithreading ou à la concurrence | feat |
| ✈️ | Changement lié aux services hors ligne | feat |
Corrections
| Gitmoji | Signification | Type |
|---|---|---|
| 🩹 | Correction de problèmes mineurs | fix |
| ✏️ | Correction de fautes d'orthographe | fix |
| 🚑️ | Correction urgente d'un bug | fix |
| 🔒️ | Correction de problèmes de sécurité | fix |
| 🚨 | Correction de problèmes linter | fix |
| 👽️ | Mise à jour liée à un changement d'API externe | fix |
Refactorisation
| Gitmoji | Signification | Type |
|---|---|---|
| 🔥 | Suppression de code ou de fichiers | refactor |
| 🚚 | Déplacement ou renommage de fichiers | refactor |
| 🏗️ | Changement lié à l'architecture | refactor |
| ⚰️ | Suppression de code déprécié | refactor |
| 🗑️ | Code déprécié qui doit être corrigé | refactor |
Style
| Gitmoji | Signification | Type |
|---|---|---|
| 📱 | Changement lié au responsive | style |
| 🍱 | Ajout ou mise à jour d'assets | style |
| 🚸 | Amélioration d'expérience utilisateur | style |
| 💫 | Ajout ou mise à jour d'effets visuels | style |
Tests
| Gitmoji | Signification | Type |
|---|---|---|
| 🥅 | Capture d'erreurs | test |
| 🤡 | Ajout ou mise à jour de mocks | test |
| 🧪 | Ajout d'un test qui ne passe pas | test |
| 📸 | Ajout de snapshots | test |
Documentation
| Gitmoji | Signification | Type |
|---|---|---|
| 💡 | Ajout ou mise à jour de commentaires dans le code | docs |
| 💬 | Ajout ou mise à jour de texte | docs |
| 📄 | Ajout ou mise à jour de licence | docs |
| 👥 | Ajout de contributeurs | docs |
| 🚩 | Ajout ou mise à jour de flags de feature | docs |
Build
| Gitmoji | Signification | Type |
|---|---|---|
| ➕ | Ajout de dépendances | build |
| ➖ | Suppression de dépendances | build |
| ⬇️ | Downgrade de dépendances | build |
| ⬆️ | Upgrade de dépendances | build |
| 📌 | Épinglage de version de dépendances | build |
| 🔧 | Modification de configuration | build |
| 📦️ | Ajout ou mise à jour de paquets | build |
Déploiement
| Gitmoji | Signification | Type |
|---|---|---|
| 🚀 | Déploiement d'un élément | ci |
| 💚 | Correction de problèmes liés à la CI | ci |
| 🩺 | Ajout ou mise à jour d'un healthcheck | ci |
Divers (corvées)
| Gitmoji | Signification | Type |
|---|---|---|
| 🎉 | Initialisation du projet | chore |
| 🔖 | Nouvelle version | chore |
| 🧑💻 | Amélioration de l'expérience développeur | chore |
| 🙈 | Mise à jour du fichier .gitignore | chore |
| 🔀 | Merge de branches | chore |
| 🔊 | Ajout ou mise à jour de logs | chore |
| 🔇 | Suppression de logs | chore |
| 🚧 | WIP | chore |
| 🧱 | Changement lié à l'infrastructure | chore |
| 🧐 | Exploration ou inspection de données | chore |
| ⚗️ | Expérimentation | chore |
| 🥚 | Easter egg | chore |
| 💩 | Code "Merdique" | chore |
| 🍻 | Code écrit saoul | chore |