Arostik Logo
ArostikVLARCK

Micro-Technology Solutions

Git y GitHubNivel: Principiante15 min de lección

¿Qué es un Commit en Git y Cómo Escribir Buenos Mensajes?

Aprende qué sucede internamente al hacer un commit, el estándar internacional de Conventional Commits (feat, fix, docs, refactor) y las reglas de oro para redactar mensajes profesionales.

¿Qué es un Commit en Git y Cómo Escribir Buenos Mensajes?
AROS STUDENT
E
Equipo de Ingeniería ArostikEspecialista en Sistemas y TI · Actualizado el 20 mar 2026
¿Qué es y para qué sirve?

Un commit en Git es una instantánea (snapshot) inmutable del estado de los archivos del proyecto en un momento determinado, acompañada de un identificador criptográfico único (hash), la fecha, el autor y un mensaje explicativo.

¿Por qué deberías aprenderlo y usarlo?

Un buen historial de commits estructurado actúa como el diario de a bordo y la documentación viva del software, permitiendo rastrear por qué se tomó cada decisión técnica y facilitando la resolución de bugs mediante herramientas como `git bisect`.

Analogía de la Vida Real

Imagina los recibos foliados de una notaría: cada recibo tiene un número único, una fecha y describe con absoluta precisión qué propiedad se vendió y quién firmó el trámite. No puedes tachar un recibo viejo; si te equivocas, debes emitir una nota aclaratoria posterior.

Explicación Paso a Paso del Tema

1

Adoptar el estándar Conventional Commits

Estructura tus mensajes usando prefijos semánticos estandarizados.

El formato estándar es `<tipo>(alcance opcional): <descripción en imperativo>`. Los tipos más usados son: `feat:` (nueva funcionalidad para el usuario), `fix:` (corrección de un bug), `docs:` (cambios en documentación o README), `style:` (formato, espacios, punto y coma sin afectar lógica), `refactor:` (reestructuración de código sin cambiar funcionalidad ni arreglar bugs), `test:` (añadir o corregir pruebas) y `chore:` (tareas de mantenimiento como actualizar dependencias de npm).

Comando de Terminal / Código
git commit -m "feat(auth): permitir inicio de sesión mediante huella digital"
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
featTipo semánticoComunica de inmediato que se introdujo una nueva característica
(auth)Alcance (Scope)Componente o módulo específico afectado por la modificación
descripciónResumen en imperativoFrase clara y concisa en presente o imperativo sin punto final
Consejo Profesional:

Usar Conventional Commits permite generar automáticamente changelogs (notas de la versión) y calcular números de versión semántica (SemVer) con herramientas de CI/CD.

Error Común a Evitar:

Escribir mensajes genéricos y vacíos de contenido como 'cambios', 'actualización', 'listo' o 'subiendo archivos'. Son inútiles cuando hay que rastrear un error meses después.

2

Escribir commits atómicos y enfocados

Haz que cada commit resuelva un único problema bien delimitado.

No acumules el trabajo de tres días con 15 archivos modificados que mezclan estilos, arreglos de bugs y funciones nuevas en un solo commit gigantesco. Si ese commit introduce un error, será imposible revertir el bug sin perder también las funciones nuevas.

Comando de Terminal / Código
git add src/utils/formatDate.ts && git commit -m "test: agregar pruebas unitarias para formateo de fechas"
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
git add archivo-específicoPreparación quirúrgicaAñade únicamente el archivo involucrado en la tarea específica
Consejo Profesional:

Si modificaste varias cosas en el mismo archivo, puedes usar `git add -p` (modo parche) para seleccionar interactivamente qué bloques de líneas enviar al commit y cuáles dejar para el siguiente.

Error Común a Evitar:

Hacer `git add .` sin pensar e incluir cambios a medio hacer o archivos que pertenecen a otra funcionalidad no terminada.

3

Corregir el último commit con --amend

Enmienda errores menores en el mensaje o añade un archivo olvidado sin crear un commit extra.

Si acabas de hacer un commit y te diste cuenta de que olvidaste incluir un archivo pequeño o cometiste un error ortográfico en el mensaje, puedes usar `git commit --amend`. Esto sustituye el último commit por una versión actualizada con el mismo historial limpio.

Comando de Terminal / Código
git add archivo-olvidado.txt && git commit --amend --no-edit
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
--amendModificador de confirmaciónModifica el commit más reciente de la rama actual en lugar de crear uno nuevo
--no-editFlag de textoMantiene intacto el mensaje del commit original sin abrir el editor
Consejo Profesional:

Solo usa `--amend` para commits puramente locales que todavía no hayas subido al servidor remoto.

Error Común a Evitar:

Usar `git commit --amend` en commits que ya fueron empujados con `git push` a un repositorio público compartido; alterará el hash y causará conflictos a tus compañeros.

Casos Prácticos Reales en Producción

Situaciones de ingeniería reales sin mención de presupuestos ficticios.

1Caso de Producción: Generación Automática de Notas de Versión en E-commerce

Escenario Real:

Un equipo de 20 ingenieros tardaba medio día de trabajo antes de cada lanzamiento a producción revisando manualmente qué cambios se habían implementado para redactar el boletín de novedades para clientes.

Solución de Ingeniería Aplicada:

Se configuró una regla obligatoria de Conventional Commits en Git con herramientas de validación de hooks (`commitlint`). La pipeline de CI/CD procesa los prefijos `feat` y `fix` y redacta automáticamente el archivo CHANGELOG.md en cada release.

Fichas Nemotécnicas de Conceptos Clave

Glosario rápido para recordar los términos fundamentales de la lección.

Commit Atómico

Práctica de incluir en un commit una sola tarea o cambio lógico completo e indivisible, facilitando su revisión y reversión si falla.

Separar el cambio de diseño visual del cambio de lógica en la base de datos en dos commits distintos.
Conventional Commits

Convención ligera sobre los mensajes de commit que añade significado semántico estructurado mediante prefijos estandarizados.

feat: agregar botón de exportar reporte en PDF
Puntero HEAD

Puntero especial de Git que indica en qué commit y rama específica te encuentras trabajando en este momento.

HEAD -> main apunta al último commit confirmado en la rama main.
Autoevaluación Rápida3 preguntas

¿Qué es un Commit en Git y Cómo Escribir Buenos Mensajes?

Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.

Aciertos: 0 / 3
1

¿Cuál de los siguientes mensajes sigue mejor las directrices de Conventional Commits?

2

¿Qué bandera permite modificar el commit más reciente para añadir un archivo olvidado sin crear un commit nuevo?

3

¿Qué representa el prefijo 'refactor:' en Conventional Commits?

Preguntas Frecuentes (FAQ)

¿De qué longitud debe ser el mensaje principal de un commit?

La regla recomendada por la comunidad es mantener la primera línea por debajo de los 50 o 72 caracteres. Si necesitas dar más detalles técnicos, deja una línea en blanco y escribe párrafos explicativos en el cuerpo del mensaje.

¿Qué significa escribir mensajes en modo imperativo?

Significa redactar el mensaje como una orden directa: 'fix: corregir fallo en login' en lugar de 'arreglé un fallo' o 'arreglando el fallo'. Esto coincide con el formato nativo en que Git redacta sus propios mensajes de fusión.

¿Por qué los commits usan hashes criptográficos en vez de números secuenciales (1, 2, 3)?

Porque en un sistema distribuido donde cientos de personas trabajan en paralelo en distintas ramas sin conexión continua, los números secuenciales colisionarían de inmediato. Un hash criptográfico asegura un identificador universal único.

Temas relacionados:#Commit#Conventional Commits#Git Log#Clean Code#Historial