Confirmar Cambios: git commit y Conventional Commits
Aprende a crear confirmaciones (commits) atómicas, la anatomía de un commit y el estándar de la industria Conventional Commits para escribir historiales limpios y legibles.
¿Qué es exactamente un Commit?
Un commit es una instantánea (snapshot) permanente e inmutable de todos los archivos de tu proyecto en un momento dado del tiempo. Cada commit recibe una firma criptográfica única de 40 caracteres hexadecimales (hash SHA-1, por ejemplo: c26cca18f2...).
Piensa en un commit como un punto de guardado en un videojuego: si en el futuro introduces un bug grave o rompes la aplicación, siempre puedes volver con exactitud quirúrgica a este punto exacto donde todo funcionaba.
La Regla de Oro: Commits Atómicos
Un commit atómico es aquel que encapsula una sola responsabilidad o cambio lógico completo. Nunca acumules el trabajo de 3 días con un mensaje genérico como "avances" o "arreglos varios".
| ❌ Commit Malo (Antipatrón) | ✅ Commit Bueno (Atómico) |
|---|---|
git commit -m "cambios del viernes" (Toca 18 archivos: base de datos, footer, login y tipografía). Si el login falla, no puedes revertirlo sin perder el footer. |
git commit -m "fix(auth): corregir expiración de sesión en login"git commit -m "style(footer): actualizar enlaces de redes sociales"Cada cambio puede revertirse de forma independiente. |
El Estándar de la Industria: Conventional Commits
En las mejores empresas tecnológicas del mundo (Google, Meta, Amazon) y proyectos de código abierto se utiliza la especificación Conventional Commits. La estructura es:
<tipo>(<alcance opcional>): <descripción corta en presente>
[cuerpo explicativo opcional]
| Prefijo | ¿Cuándo se usa? | Ejemplo Real |
|---|---|---|
| feat | Una nueva funcionalidad o característica para el usuario o sistema. | feat(lms): agregar editor Atom One Dark para entrega de tareas |
| fix | Corrección de un error o bug en producción o desarrollo. | fix(sandbox): corregir falso positivo en llamadas a pdo exec |
| docs | Modificaciones exclusivas en documentación (README, manuales, guías). | docs(legal): actualizar guía tributaria para factura voluntaria |
| style | Cambios cosméticos de código que no alteran la lógica (espacios, formateo). | style(css): ajustar margen de botones en pantalla de checkout |
| refactor | Reestructuración de código que ni añade una feature ni arregla un bug. | refactor(db): simplificar método de conexión de workspaces sqlite |
| test | Añadir o corregir pruebas unitarias o de integración. | test(auth): agregar pruebas de expiración de token de sesión |
⚡ Ejemplos de Creación de Commits Profesionales
Comandos para realizar commits con mensajes cortos y commits detallados con título y cuerpo:
# 1. Commit de una sola línea con mensaje descriptivo:
git commit -m "feat(checkout): agregar soporte para pagos en USD con PayPal"
# 2. Commit con título y cuerpo detallado (usando varios -m):
git commit -m "fix(mail): corregir envío de credenciales tras matrícula" \
-m "Se reemplaza el puerto SMTP por la API REST v3 de Brevo para evitar bloqueos por cortafuegos en el servidor de producción."
# 3. Modificar el mensaje del ÚLTIMO commit si te equivocaste de redacción (solo local):
git commit --amend -m "fix(mail): corregir envío de correo transaccional de bienvenida"
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de Git & GitHub Profesional y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.