« Plus un commit contient de changements, plus il représente de travail. »
Un commit utile représente une intention cohérente. Il doit pouvoir être lu, testé, revu et éventuellement annulé sans emporter des modifications sans rapport.
01Définis l’intention
Mauvais lot : documentation + correction réseau + secret local + formatage
Bon commit : documenter le workflow du laboratoire
Bon commit : ajouter le script d’inspection du repository
Un commit atomique n’est pas forcément petit en nombre de lignes. Il est indivisible sur le plan logique.
02Vérifie avant commit
cd /tmp/soria-git-foundations-$USER/starter
git add README.md
git status --short
git diff --cached --check
git diff --cached
git diff –cached –check repère notamment certaines erreurs d’espaces. La revue du diff reste indispensable pour détecter un fichier ou une intention étrangère.
03Crée le commit
git commit -m "docs: explain the repository workflow"
git status --short --branch
git log -1 --format=fuller
Le préfixe docs: est une convention de lisibilité, pas une obligation de Git. Le sujet décrit l’intention au présent et reste compréhensible hors contexte.
04Crée un second commit distinct
git add docs/observations.md
git diff --cached
git commit -m "docs: record the three Git areas"
Les deux commits peuvent maintenant être revus ou annulés séparément.
05Observe l’identifiant du commit
git rev-parse HEAD
git rev-parse --short HEAD
git show --no-patch --format='%H%n%an <%ae>%n%s' HEAD
Le hash identifie le contenu du commit et ses liens dans l’historique. Le hash court est pratique pour l’affichage, mais sa longueur doit rester suffisante pour être unique dans le dépôt.
06Corrige uniquement le dernier message
git commit --amend -m "docs: describe the three Git areas"
git log --oneline -3
–amend crée un nouveau commit qui remplace le dernier dans la branche courante. Évite cette réécriture après partage sans coordination avec l’équipe.
07Compare avant et après amend
git reflog -3
git show --stat HEAD
git status --porcelain
Le reflog local conserve temporairement les déplacements de références et permet d’observer l’ancien HEAD. Il ne remplace pas une stratégie de collaboration.
Découpe une modification mélangée
Ajoute documentation, script et changement de configuration dans le même working tree. Produis ensuite trois commits atomiques avec preuve du diff préparé avant chacun.
✓Ce que tu retiens
Un commit est un snapshot documenté par une intention. Sa qualité dépend de la sélection de l’index, du message, de la vérification et de sa capacité à être compris isolément.