Par Anonyme (non vérifié) , 29 avril 2026

Qu'est-ce qu'un commit atomique ?

Un commit atomique capture exactement un changement logique. Il compile, passe ses propres tests, et peut être reverté isolément sans rien casser d'autre.

Le test de l'odeur

Si vous vous trouvez à écrire un message de commit avec le mot "et" — "Add login and fix typo and refactor helper" — vous regardez trois commits coincés en un.

Staging sélectif avec git add -p

git add -p src/checkout.js
# y - stage ce hunk
# n - sauter ce hunk
# s - diviser en hunks plus petits
# e - éditer manuellement le hunk

Un exemple travaillé

git add src/checkout.js
git commit -m "Fix off-by-one in cart total calculation"

git add tests/checkout.test.js
git commit -m "Add regression test for cart total bug"

git add README.md
git commit -m "Fix typo in installation section"

Diviser des commits déjà faits

git rebase -i HEAD~3
git reset HEAD^
git add -p
git commit -m "Première pièce atomique"
git add -p
git commit -m "Seconde pièce atomique"
git rebase --continue

Garder les tests avec leur code

Une question souvent débattue : le test d'une feature doit-il vivre dans le même commit que la feature ? La réponse pragmatique est "même commit".

Commits atomiques et bisect

git bisect start
git bisect bad HEAD
git bisect good v2.4.0