Un commit gigante con el mensaje “varios cambios” es una deuda que pagas más tarde, normalmente a las 2 de la madrugada buscando qué rompió producción.

Un commit, una idea

La regla es simple: cada commit debe representar un cambio lógico completo. Si el mensaje necesita la palabra “y”, probablemente son dos commits.

❌ fix login y refactor del header y actualizar deps
✅ fix: corrige redirección tras login
✅ refactor: extrae lógica del header a un hook
✅ chore: actualiza dependencias

Por qué importa

  • Revisión más fácil: nadie revisa bien un diff de 800 líneas. Sí uno de 40.
  • git bisect funciona: si cada commit es atómico y deja el código funcionando, encontrar el que introdujo un bug es cuestión de minutos.
  • git revert quirúrgico: puedes deshacer un cambio sin arrastrar otros tres.
  • Historia legible: el log se convierte en la narrativa de cómo creció el proyecto.

El mensaje también cuenta

Usa el imperativo y explica el por qué, no el qué (el diff ya dice qué cambió):

fix: evita doble submit en el formulario de pago

El botón no se deshabilitaba durante la petición, permitiendo
cobros duplicados si el usuario hacía doble clic.

Commits pequeños no te ralentizan. Te ahorran las horas que de otro modo perderías depurando a ciegas.