Por Anónimo (no verificado) , 29 Abril 2026

¿Qué es un commit atómico?

Un commit atómico captura exactamente un cambio lógico. Compila, pasa sus propios tests, y puede ser revertido aisladamente sin romper nada más.

El test del olfato

Si te encuentras escribiendo un mensaje con la palabra "y" — "Añadir login y arreglar typo y refactorizar helper" — estás viendo tres commits atascados en uno.

Staging selectivo con git add -p

git add -p src/checkout.js
# y - stagear este hunk
# n - saltar este hunk
# s - dividir en hunks más pequeños
# e - editar manualmente el hunk

Un ejemplo trabajado

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"

Dividir commits que ya hiciste

git rebase -i HEAD~3
# Marcar el commit desordenado como 'edit'
git reset HEAD^
git add -p
git commit -m "Primera pieza atómica"
git add -p
git commit -m "Segunda pieza atómica"
git rebase --continue

Mantener tests con su código

Una pregunta debatida a menudo: ¿debería el test de un feature vivir en el mismo commit que el feature, o en uno separado? La respuesta pragmática es "mismo commit".

Commits atómicos y bisect

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