Conventional commits¶
Le cours demande des messages de commit qui respectent un standard (chiant je sais), pas un "first commit". Le standard, c'est les conventional commits.
Le format¶
type(scope): description
- type: ce qu'on a fait (voir après)
- scope: la partie touchée, entre parenthèses (
api,html,js,vite,readme,ci...) - description: courte, à l'impératif ou au passé comme on veut, mais toujours le même style, sans point à la fin
Les types¶
| Type | Quand |
|---|---|
feat |
nouvelle fonctionnalité |
fix |
correction de bug |
docs |
doc uniquement (README, jsdoc...) |
style |
mise en forme, sans changer la logique (espaces, guillemets...) |
refactor |
changer le code sans ajouter de feature ni corriger de bug |
perf |
amélioration de performance |
test |
ajout ou modif de tests |
build |
build, dépendances (vite, npm...) |
ci |
fichiers de CI (.gitlab-ci.yml) |
chore |
tâche sans grande importance (ex: premier commit, ajout d'un fichier) |
revert |
annule un commit précédent |
Changement qui casse la compatibilité¶
On ajoute un ! juste avant les ::
feat(api)!: changement d'api météo
Exemples¶
Bons:
chore(project): initial commit
feat(api): ajout de l'api exchange ainsi que des tests unitaires
fix(html): correction du titre de la page
refactor(vite): ajout du dossier public et utilisation de ce dossier pour favicon
feat(ci): nouveau jobs ci
feat(api)!: changement d'api météo
Mauvais:
initial commit
update
fix
.
bs
Lien avec les tags de version¶
Les tags suivent le versionnage sémantique: vMAJEUR.MINEUR.PATCH.
| Commit | Tag | Exemple |
|---|---|---|
fix |
PATCH | v1.0.0 -> v1.0.1 |
feat |
MINEUR | v1.0.0 -> v1.1.0 |
feat! |
MAJEUR | v1.1.0 -> v2.0.0 |
git tag v1.0.0
git tag v1.1.0
git tag v2.0.0
git push --tags
Tip
Pour check le résultat: git log --oneline --graph --all --decorate affiche les tags à côté des commits.