21/04/2021

4. Les messages de commit

Lu 1247 fois Licence Creative Commons

git commit -m "Modifications"

Il y a le bon et le mauvais message de commit...


Ecrire un bon message

Les messages de commit sont très importants. S'ils ne sont pas correctement formulés ils ne transmettront aucune information lorsqu'on lira l'historique: ils pourraient nous faire perdre du temps dans des situations critiques.

Spoiler alert: beaucoup trop de temps dont on ne dispose pas.


Règle n°1: ne pas utiliser -m

Utiliser cette option implique que le message sera forcément court, et sa mise en forme limitée par rapport à un éditeur de texte.

Règle n°2: écrire des messages "impératifs"

Au lieu d'écrire:

Refactorisation de la classe d'authentification

Préférez:

Refactorise la classe d'authentification

Un message de commit devrait se lire comme s'il suivait une phrase tel que:

S'il est appliqué, ce commit <VOTRE MESSAGE>
S'il est appliqué, ce commit Refactorise la classe d'authentification

Règle n°3: formatter son message

La 1e ligne soit être une description impérative courte, suivie d'une ligne vide, puis d'un corps qui fera une description plus longue.

Refactorise la classe d'authentification

Rassemble les duplications de code pour la création et la validation des jetons 
d'authentification en une méthode validateToken().
Supprimes la méthode de connexion par cookie, remplacée par validateToken().

Utiliser un template

Pour avoir un rappel des règles à suivres, il peut être intéressant d'avoir un "template" pour vos messages de commit:

# description courte et impérative:
# [Ajoute / Modifie / Supprime / Corrige / ...]


# Description plus longue 
# (fonctionnalité, améliorations, corrections, ...)

# Eventuellement, un lien vers un ticket

En enregistrant ce fichier et en l'ajoutant à la configuration globale de Git:

git config --global commit.template "/home/aymdev/.gitmessage"

Dès qu'il faudra rédiger un message, le contenu du fichier apparaitra:

# description courte et impérative:
# [Ajoute / Modifie / Supprime / Corrige / ...]


# Description plus longue 
# (fonctionnalité, améliorations, corrections, ...)

# Eventuellement, un lien vers un ticket

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Sat May 2 17:08:29 2020 +0200
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#       new file:   .gitignore
#       new file:   README.md
#


De nombreux articles détaillent des règles supplémentaires et différents templates de messages:


Partie pratique:

Créer un dossier /commit/ et, à l'intérieur, un fichier commit.md dans lequel vous pourriez inscrire ce que vous avez retenu des commits.
Enregistrez un nouveau commit.

Créer un fichier /commit/staging.md pour y mettre ce que vous avez retenu du staging.
Enregistrez un nouveau commit.

Créer un fichier cheatsheet.md dans lequel vous pourrez mettre les astuces que vous trouverez durant votre apprentissage de Git.
Enregistrez un nouveau commit.

Faites autant de modifications et d'ajouts de nouveaux fichiers que vous le souhaitez, cela fera un peu de matière dans l'historique que nous pourrons retravailler.