Buenas practicas para commits - DiegoFigueroaS/SCESI-GitAndGithub-ConflictoTeam GitHub Wiki

El mensaje de commit debe ser escaneable, claro y entendible para cualquier persona que participe en el proyecto, ya sea actual o en el futuro.

A continuación se presentan 5 reglas fundamentales que deben seguirse.


1. Usa el verbo en imperativo (Add, Change, Fix, Remove, ...)

  • El mensaje debe describir qué cambia el commit en forma de orden, no en pasado ni en futuro.
  • El verbo debe ser en presente imperativo: "add", "fix", "remove", "update".
  • Piensa que debe completar esta frase: "Si aplico este commit, entonces este commit..."

Ejemplos correctos:

  • add search feature
  • fix problem with login
  • change color scheme

❌ Incorrecto: added search feature / fixed login bug


2. No uses punto final ni puntos suspensivos

  • Los títulos de los commits no deben terminar en punto (.) ni usar puntos suspensivos (...).
  • La puntuación es innecesaria en el resumen breve.

Correcto:

  • fix typo in README

❌ Incorrecto:

  • fix typo in README.
  • fix typo in README...

3. Máximo 50 caracteres en el título del commit

  • El resumen (el título) debe ser conciso y directo.
  • Si no puedes explicar el cambio en 50 caracteres, probablemente tu commit debería dividirse en varios.

Correcto:

  • add modal for user creation

❌ Incorrecto:

  • add modal for user creation and also implement login validations

4. Añade contexto adicional en el cuerpo del commit

  • Si es necesario, añade detalles adicionales tras una línea en blanco.
  • El cuerpo del commit puede explicar el por qué y cómo del cambio.
  • Aquí sí se utilizan reglas gramaticales normales (puntos, comas, párrafos).

Ejemplo:

fix login error when password is missing

this issue happened because the backend was returning 400 without
a clear error message. now we correctly show a validation message
on the client side.

5. Usa prefijos semánticos en los commits

Adopta un estándar de prefijos para identificar rápidamente el tipo de cambio:

Prefijo Descripción
feat Nueva funcionalidad
fix Corrección de un bug
perf Mejoras de rendimiento
build Cambios en configuración de build / CI/CD
ci Cambios en la integración continua
docs Cambios de documentación
refactor Refactorización de código sin cambios de funcionalidad
style Cambios de formato (espacios, comas)
test Añadir o actualizar tests

Formato recomendado:

<tipo>(opcional-scope): descripción corta

Ejemplos:

  • feat(auth): add password reset feature
  • fix(api): fix null pointer exception
  • docs(readme): update installation instructions

Ejemplo Completo para Realizar un Commit

# 1. Añades los cambios al staging area
git add .

# 2. Realizas el commit escribiendo en imperativo, sin punto final, usando prefijo semántico
git commit -m "feat: add modal button to booking screen"

# 3. Opcionalmente, si necesitas dar más contexto puedes hacerlo así:
git commit

# Esto abrirá el editor de texto, donde puedes estructurar tu commit así:

feat: add modal button to booking screen

this commit adds a new modal button that opens a booking form
for users to reserve rooms. it is connected with the backend
API and handles form validation on the client side.
# Añadir cambios
git add .

# Commit corto, siguiendo las buenas prácticas
git commit -m "feat: add booking modal button"

# Commit con título y cuerpo en un solo comando
git commit -m "feat: add booking modal button" -m "connects to backend and validates user input"


Recuerda: un buen commit no solo facilita el trabajo en equipo, sino también la automatización, la trazabilidad y el despliegue continuo (CI/CD).


⚠️ **GitHub.com Fallback** ⚠️