Skip to content

Convención de Commits Semántica

Esta convención de commits semántica tiene como objetivo mantener un historial de cambios claro, legible y organizado. La convención incluye una estructura de mensaje que sigue una acción semántica, con la opción de agregar un scope para especificar la parte afectada del proyecto. Esto permite al equipo entender fácilmente qué cambio se realizó y en qué parte del proyecto se aplicó.

Cada mensaje de commit debe seguir la estructura siguiente:

<acción>(<scope opcional>): <descripción corta>
  • Acción: Indica el tipo de cambio realizado. Es obligatorio y debe estar en inglés para estandarización.
  • Scope: Es opcional, y sirve para especificar el área afectada del proyecto (por ejemplo, auth, api, database, etc.).
  • Descripción corta: Un breve resumen del cambio. Máximo 70 caracteres para mantener el mensaje conciso.
AcciónDescripciónEjemplo
AddPara agregar una nueva funcionalidad o archivo al proyectoAdd(auth): función de autenticación de usuarios
UpdatePara realizar cambios en una funcionalidad o archivo existenteUpdate(api): mejora el manejo de errores
RemovePara eliminar una funcionalidad, archivo o sección de códigoRemove: elimina archivos obsoletos
FixPara corregir errores en el proyectoFix(database): corrige error en la conexión
RefactorPara refactorizar el código sin cambiar su funcionalidadRefactor(auth): simplifica lógica de validación
DocsPara agregar o mejorar la documentación del proyectoDocs: actualiza guía de configuración
StylePara cambios que no afectan la lógica (p. ej., formateo, comas, sangrías)Style: corrige formateo en archivo app.js
TestPara agregar o modificar pruebas en el proyectoTest(auth): añade pruebas de integración
ChorePara otros cambios menores, como actualización de dependenciasChore: actualiza dependencias de desarrollo

A continuación, se presenta una lista de posibles scopes que puedes usar para especificar el área afectada en un proyecto Laravel:

ScopeDescripción
authCambios en el sistema de autenticación (login, registro, permisos, etc.)
apiCambios en la API (controladores, rutas API, respuestas JSON)
databaseCambios en la base de datos (migraciones, seeders, configuraciones)
modelCambios en los modelos de Eloquent (relaciones, atributos, métodos)
controllerCambios en los controladores
requestCambios en clases de solicitud (validaciones, reglas personalizadas)
viewCambios en vistas Blade o en la estructura HTML
configCambios en archivos de configuración (config/*.php)
routeCambios en el archivo de rutas (web.php, api.php)
middlewareCambios en middlewares
artisanComandos de Artisan creados o modificados
serviceCambios en servicios específicos (si el proyecto usa servicios dedicados)
policyCambios en políticas de autorización
exceptionCambios en el manejo de excepciones y errores
testCambios en pruebas unitarias o de integración
envCambios en variables de entorno o configuración de .env
cssCambios en estilos CSS o frameworks de diseño como Tailwind, Bulma
jsCambios en scripts JavaScript o lógica del frontend

Ejemplos con scope:

Add(auth): añade autenticación con Google
Update(api): mejora la respuesta en validación de datos
Fix(database): corrige error en migración de la base de datos

Ejemplos sin scope:

Remove: elimina archivos temporales del proyecto
Refactor: reorganiza las funciones en auth.js
Style: aplica nuevo formato de código en app.js
  • Escribe mensajes claros y breves: Usa un lenguaje sencillo y directo.
  • Usa verbo en infinitivo: Mantén consistencia al iniciar cada mensaje con un verbo en infinitivo.
  • Scope opcional: Solo usa el scope cuando realmente ayuda a aclarar la parte del proyecto que se ve afectada.
  • Descripción precisa: Evita descripciones genéricas como “Arreglado” o “Actualizado”. En su lugar, describe brevemente qué se cambió.
  • Correcto: Add(api): implementa endpoint de autenticación
  • Correcto: Fix: corrige error en cálculo de totales
  • Incorrecto: Arreglado error en API
  • Claridad: Cada commit tiene una intención clara y concisa.
  • Estructura consistente: La estructura facilita la revisión y permite entender el contexto del cambio.
  • Historial limpio: Permite identificar y rastrear fácilmente los cambios realizados en el proyecto.