Imagen de cabecera para el artículo sobre Conventional Commits.

Qué es Conventional Commits y por qué deberías aplicarlo en tus proyectos

¿Qué es Conventional Commits?

Conventional Commits es una especificación que establece varios estándares para mejorar la consistencia y la claridad de los mensajes de commit de Git, generando así un historial de commits mucho más limpio, funcional y apto para automatizaciones.

Ventajas de usar Conventional Commits

Aplicar la especificación de Conventional Commits tiene muchas ventajas, entre ellas:

  • Estandariza los mensajes de commit, de forma que todos siguen una estructura similar y facilita la búsqueda de información.
  • Mejora la utilidad de los mensajes, incluyendo información más relevante (el tipo de modificación, el alcance, o incluso el identificador de la incidencia en Jira).
  • Facilita la generación de changelogs.
  • Hace posible automatizar la generación de documentación, ya que el formato es el mismo para todos los commits.
  • Puede ayudar a determinar la versión del proyecto a partir de los «tipos» de commit.
  • Ayuda a la gente no implicada en el desarrollo a entender los cambios realizados.

Todas estas ventajas hacen que Conventional Commits sea una mejora muy significativa en los flujos de trabajo.

La especificación

Conventional Commits define la estructura de los mensajes de commit de la siguiente manera:

tipo(alcance opcional): descripción

cuerpo opcional

pie opcional

Tipo de cambio

Es obligatorio indicar un tipo de cambio. Los principales son:

  • feat: cuando se añade una nueva funcionalidad al proyecto.
  • fix: cuando se corrige un error.

Sin embargo, existen más tipos que podemos usar:

  • build: cuando el cambio afecta al sistema de build o a las dependencias.
  • ci: para los cambios que impactan en la integración continua.
  • docs: cuando se actualiza la documentación.
  • perf: indica que los cambios mejoran el rendimiento.
  • refactor: para refactorizaciones de código que no corrigen errores ni añaden funcionalidad.
  • style: cambios al formato del código (como espacios en blanco).
  • test: para cambios que afectan al testing (por ejemplo, añadir pruebas unitarias).
  • revert: revierte un cambio previo.

El alcance

Es opcional indicar un alcance: la especificación sugiere que debería ser un sustantivo que describa una sección del código y debe estar entre paréntesis.

La descripción

Es obligatorio y debe ser una descripción concisa (una línea corta) de los cambios realizados.

El cuerpo

Opcionalmente se puede añadir el cuerpo, que es una descripción más larga (sin límite de longitud) que se puede incluir en el commit. Debe haber una línea en blanco entre la descripción y el cuerpo.

El pie de commit

Por último, podemos añadir uno o más pies de commit para incluir referencias.

Un pie de commit debe consistir de una palabra «clave» (o varias, separadas por guiones, ya que la especificación no permite espacios en la clave), a continuación dos puntos (:) y un espacio o, en lugar de esto, un espacio y una almohadilla, y finalmente el texto «valor» que corresponde al pie.

La única «clave» que admite espacios es «BREAKING CHANGE», que indica más información acerca de un cambio importante en una API. También es válido escribirlo como «BREAKING-CHANGE» si así se desea.

Otras consideraciones de formato

A continuación del tipo y el alcance (si lo hay) se incluye:

  • Opcionalmente, un signo de exclamación para indicar un «breaking change» (un cambio significativo en una API).
  • Obligatoriamente, dos puntos (:) seguidos de un espacio.

Además, el «BREAKING CHANGE» en el pie se puede omitir si se utiliza el signo de exclamación a continuación del tipo y alcance.

Un ejemplo vale más que mil palabras 😊

Esto sería un ejemplo válido del uso de Conventional Commits:

feat(calculadora)!: añade un nuevo parámetro para la división

Se añade un nuevo parámetro para indicar si se debe obtener el resto de la división.

Revisado-por: EM
Jira: CALCULADORA-1234
BREAKING CHANGE: requiere indicar el nuevo parámetro.

Como puedes ver, la especificación tiene una capacidad significativa para mejorar los flujos de trabajo y la automatización, y su uso se recomienda enormemente.

Puedes revisar más en detalle la especificación en el sitio oficial de Conventional Commits.


Este artículo pertenece a las categorías:

Entérate de todas las novedades del blog

Suscríbete y recibe los últimos posts en tu correo 😊


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: La Desarrolladora Curiosa.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Amazon Web Services que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para fines de afiliación y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad