DEV Community

Nicolás Sañudo
Nicolás Sañudo

Posted on

Git: haz que todos amen leer tus commits

¿Por qué es importante tener un buen mensaje en tus commits? Porque estos cuentan la historia de tu proyecto.

Ademas, la redacción de estos mensajes es parte de tu huella digital como programadora: habla de que tienes la capacidad de conceptualizar los cambios en tu repositorio.

¿Qué vas a aprender?

Vas a aprender a hacer un commit como este:

# Resultado final de commit
➕ Add dependencies

- class-validator
- class-transformer
- @nestjs/mapped-types

Pin those dependencies to specific versions
Enter fullscreen mode Exit fullscreen mode

Empecemos por configurar Git

La terminal no es un lugar tan práctico para escribir mensajes de commits con la estructura que vas a aprender. Por eso te vas a llevar un truco: ¡Dile a Git que editor de texto quieres utilizar!

En el ejemplo se utiliza VSCode, pero puedes usar el editor de texto de tu preferencia.

En una terminal, introduces el comando:

git config --global core.editor "code --wait"
Enter fullscreen mode Exit fullscreen mode

Ahora puedes ejecutar git commit y se abrirá una nueva pestaña en VSCode:

Ejemplo de cómo se ve la terminal en VSCode

Nota: hasta no cerrar la ventana, no se van a guardar los cambios.

Hablemos del mensaje

El mensaje que viste al comienzo del post tiene la siguiente estructura: encabezado, cuerpo y pie de mensaje.

[Encabezado] --> Mensaje principal
             --> Salto de línea
[Cuerpo]     --> Contexto agregado sobre el commit
             --> Salto de línea
[Pie]        --> Información adicional
Enter fullscreen mode Exit fullscreen mode

Existe una convención implícita en la comunidad: en lo posible, cada línea no debe superar los 72 caracteres de longitud.

Encabezado

Para ser directos y ahorrar caracteres, los mensajes deben empezar con un verbo en infinitivo:

Add comments in source code: TSDoc syntax
Enter fullscreen mode Exit fullscreen mode

Por suerte, existe GitMoji para darle un poco más de contexto a tu mensaje usando emojis:

💡 Add comments in source code: TSDoc syntax
Enter fullscreen mode Exit fullscreen mode

¿Te animás a un ejercicio rápido? Busca un emoji en nuestro nuevo recurso para el siguiente mensaje:

release: prepare version 2.0.0
Enter fullscreen mode Exit fullscreen mode

Cuerpo

Puede que necesites dar información adicional sobre los cambios. Para eso dejas una línea de espacio para separar con el encabezado y escribes el cuerpo del mensaje:

🔥 Remove dead files

- src/test.spec.ts has not relative
- src/README is useless. Current README is in root directory
Enter fullscreen mode Exit fullscreen mode
➕ Add dependencies

- class-validator
- class-transformer
- @nestjs/mapped-types
Enter fullscreen mode Exit fullscreen mode

Pie

Si necesitas agregar un último comentario adicional, puedes escribir un pie de mensaje dejando una línea de separación.

🩹 Fix minor typos in code

See the issue for details on the typos fixed

Fixes issue #12
Enter fullscreen mode Exit fullscreen mode

Sobre las reglas de ortografía

Detalles como “terminar oraciones en punto” o “arrancar oraciones en mayúsculas” son decisiones que vas a tomar sola (si es para un proyecto personal) o con tu equipo de trabajo.

Lo importante es que mantengas la consistencia de usar la misma convención de formato de mensajes a través de todos los commits.

Bonus: atajo para visualizar mejor los mensajes de commits

En este punto, tus mensajes de commits se ven increíbles ¡Te ganaste un bonus!

Vas a configurar 2 alias en Git para que el tradicional git log se vea más bonito en consola.

Resultado de alias con forma simple:

Ejemplo del comando git log formateado simple

¿Qué significa todo eso?

  • Cada asterisco representa un commit.
  • Solo se muestra la primer línea de cada mensaje y el ID de cada commit.
  • Si hay un merge en el historial de tu rama, también lo va a mostrar.

Resultado de alias con forma detallada:

Ejemplo del comando git log formateado con más detalles

A la forma simple, se agregan los detalles de antigüedad y quién hizo el commit.

Puedes agregar estos alias ejecutando en una terminal los comandos:

# Forma simple
git config --global alias.lg "log --graph --all --decorate --oneline"
## Uso: git lg

# Forma detallada
git config --global alias.lgd "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
## Uso: git lgd
Enter fullscreen mode Exit fullscreen mode

Ya sabes escribir commits como una experta

Vimos la importancia de los mensajes de tus commits para tu marca personal, configuraste Git para trabajar con tu editor de texto favorito y aprendiste como escribir mensajes increíbles.

¡FELI - CITA - CIONES!

👏🏻👏🏻👏🏻

Top comments (0)