Connectly
Ingeniería2025-01-02

Haz commit de tu código con estilo usando git.emoji

Por Oliver Nguyen

Haz commit de tu código con estilo usando git.emoji

¿Alguna vez te aburriste de los mismos mensajes de commit de siempre, todos empezando con "update", "fix" o "feat"? ¿Sabías que los emojis son el último avance en la comunicación humana? Pueden transmitir emociones e ideas en un solo carácter y hacer que tus mensajes cobren vida. Piénsalo, incluso cuando lleguen los extraterrestres a la Tierra, entenderán rápidamente el significado de estos pequeños caracteres. 😎

¡Año nuevo, tú nuevo! Dejemos los commits aburridos en el pasado y abracemos la magia de los emojis para hacer de cada commit una celebración! 🥳✨

Introducción

git.emoji es una herramienta escrita en Go que te permite usar emojis en tus mensajes de commit. Proporciona una interfaz de línea de comandos simple para ayudarte a elegir el emoji correcto para tu commit. Proporciona una interfaz de línea de comandos simple para ayudarte a elegir el emoji correcto para tu commit.

Ya sea que estés corrigiendo un bug, agregando una nueva funcionalidad o actualizando documentación, ahora puedes expresarte con emojis.

Ver video

Instalación

Para instalar git.emoji, necesitas tener Go instalado en tu máquina. Puedes descargar la última versión de Go desde el sitio oficial. Una vez que tengas Go instalado, puedes instalar git.emoji con el siguiente comando:

git clone https://github.com/connectlyai/git.emoji.git
cd git.emoji
./build.sh

Ahora deberías tener git.emoji instalado en tu máquina, usualmente en ~/go/bin/git.emoji. Asegúrate de agregar este directorio a tu PATH para poder usar git.emoji desde cualquier lugar.

Verifiquemos que esté instalado correctamente:

$ which git.emoji
~/go/bin/git.emoji

Y probemos ejecutar git.emoji:

$ git.emoji
git.emoji - git commit with emoji

git.emoji is a tool to commit your changes with emoji.
It will setup git hooks to commit with emoji, and can
be used as a wrapper of git.

Configuración

Para empezar a usar git.emoji, necesitas configurar los git hooks en tu repositorio. Puedes hacer esto ejecutando el siguiente comando en tu repositorio:

git.emoji setup-hooks

Este comando configurará los git hooks necesarios para usar git.emoji en tus commits. ¡Ahora puedes empezar a hacer commits con emojis!

Tu primer commit con emoji

Empecemos con un commit simple:

touch README.md
git add .
git.emoji commit -m "edit README"

Este comando abrirá un prompt para que elijas un emoji para tu mensaje de commit. Puedes elegir de una lista de emojis y agregar un mensaje para describir tu commit. Una vez que hayas seleccionado un emoji y agregado un mensaje, el commit se hará con el emoji y el mensaje.

--- 👉 Please choose an emoji 👈 ----------------------
  1.         Features	💻 ✨ 	 -feat -ft
  2.        Bug Fixes	🚧 🐛 	 -fix -fx
  3.   SDKs/Libraries	🛠️ 📦 	 -sdk -lib -pkg -tenets
  4. Breaking Changes	🔥 💥 	 -breaking -br -brk -break
  5. Code Refactoring	♻️ 	 -refactor -rf -ref -rft
  6.   Infrastructure	🐳 	 -infra -if -in -inf
  7.            Tests	🚨 🧪 	 -test -ts -tst
  8.           Chores	🧼 🧹 	 -chore -ch -chr
  9.          Reverts	⏳ ⏪ 	 -revert -rv -rev -rvt
 10.         Releases	🚀 🔖 	 -release -rl -rel -rls
 11.           Others	🔍 	 -other -ot -oth

HINT: You can use command line flag to choose the type:
      git commit -feat -m 'message'   # 💻 Features
      git commit -ft   -m 'message'   # 💻 Features
      git commit -ft1  -m 'message'   # ✨ Features
      git commit -ch   -m 'message'   # 🧼 Chore
      git commit -ch1  -m 'message'   # 🧹 Chore

Enter a number or abbr or emoji (1 | 1a | ft | ft1):

Por ejemplo, si quieres hacer commit de una nueva funcionalidad, puedes ingresar el número 1 o la abreviatura ft para seleccionar la categoría Features y el emoji 💻. Cada categoría tiene una lista de emojis que puedes elegir para describir tu commit. Para usar el siguiente emoji en su lugar, puedes ingresar 1a o ft1 para seleccionar el emoji ✨, y así sucesivamente.

Haz commit con emoji desde la línea de comandos

Además de usar el prompt interactivo, también puedes hacer commit con un emoji directamente desde la línea de comandos. Puedes usar la bandera -<abbr> para seleccionar el emoji de tu commit. Por ejemplo, para hacer commit de una nueva funcionalidad, puedes usar el siguiente comando:

git.emoji commit -feat -m "add new feature"  # use the 💻 emoji for Features
git.emoji commit -ft   -m "add new feature"  # use the 💻 emoji for Features
git.emoji commit -ft1  -m "add new feature"  # use the ✨ emoji for Features

De esta manera, puedes hacer commit rápido de tus cambios con emojis sin pasar por el prompt interactivo.

Usa git.emoji como wrapper de git

Si no te gusta escribir git.emoji cada vez que quieres hacer commit, puedes crear un alias de git.emoji como wrapper de git. Agrega la siguiente línea a tu archivo de configuración de shell (por ejemplo, .bashrc, .zshrc, .bash_profile):

alias git=git.emoji

Ahora puedes usar git como lo harías normalmente, y automáticamente usará git.emoji para tus commits.

git commit -feat1 -m "add new feature"  # use the ✨ emoji for Features

Funciona con rebase, merge y otros comandos de git

No solo al hacer commit: cada vez que uses comandos de git que involucren un commit, como rebase, merge o cherry-pick, si hay un mensaje de commit sin emoji, git.emoji te pedirá que selecciones uno para el mensaje. De esta manera, puedes asegurarte de que todos tus commits sean consistentes y expresivos.

Personaliza tus emojis

No tienes que usar los emojis predeterminados que ofrece git.emoji. Siempre puedes usar tus emojis favoritos, ya sea ingresando el emoji directamente al hacer commit de tus cambios o personalizando los emojis en tu archivo local emoji.config.

Actualmente, soporta dos ubicaciones para el archivo emoji.config:

  • <YOUR_REPOSITORY>/emoji.config
  • <YOUR_REPOSITORY>/.git/emoji.config

Con la primera forma, puedes personalizar y compartir los emojis con tu equipo en el repositorio. Con la segunda, puedes personalizar los emojis solo para tu repositorio local.

Para empezar a personalizar tus emojis, puedes ejecutar este comando:

git.emoji write-config

Esto te preguntará dónde quieres guardar el archivo emoji.config:

Current config file: /Users/i/ws/conn/git.emoji/.git/emoji.config

Where do you want to write the config file?

  1. /Users/i/ws/conn/git.emoji/.git/emoji.config

  2. /Users/i/ws/conn/git.emoji/emoji.config

Enter a number:

El archivo de configuración se verá así:

[git.emoji "Features"]
  icons = 💻 ✨
  alias = feat ft
[git.emoji "Bug Fixes"]
  icons = 🚧 🐛
  alias = fix fx
[git.emoji "SDKs/Libraries"]
  icons = 🛠️ 📦
  alias = sdk lib pkg tenets
[git.emoji "Breaking Changes"]
  icons = 🔥 💥
  alias = breaking br brk break
[git.emoji "Code Refactoring"]
  icons = ♻️
  alias = refactor rf ref rft
[git.emoji "Infrastructure"]
  icons = 🐳
  alias = infra if in inf
[git.emoji "Tests"]
  icons = 🚨 🧪
  alias = test ts tst
[git.emoji "Chores"]
  icons = 🧼 🧹
  alias = chore ch chr
[git.emoji "Reverts"]
  icons = ⏳ ⏪
  alias = revert rv rev rvt
[git.emoji "Releases"]
  icons = 🚀 🔖
  alias = release rl rel rls
[git.emoji "Others"]
  icons = 🔍
  alias = other ot oth

Solo edita el archivo, agrega tus emojis favoritos, crea las categorías que quieras y guarda el archivo. ¡Ahora puedes usar estos emojis en tus commits!

Cómo funciona

git.emoji funciona configurando git hooks en tu repositorio para interceptar los mensajes de commit. Cuando haces un commit, el git hook llamará a git.emoji para que selecciones un emoji para tu mensaje de commit. Una vez que hayas seleccionado un emoji, git.emoji lo agregará a tu mensaje de commit y hará el commit.

Bajo los hooks

Los git hooks se configuran en el directorio .git/hooks de tu repositorio. Si miras dentro de este directorio, verás un montón de archivos de hooks:

$ ls .git/hooks
applypatch-msg.sample     post-commit               pre-commit.sample         prepare-commit-msg.sample
commit-msg                post-merge                pre-merge-commit.sample   push-to-checkout.sample
commit-msg.sample         post-rewrite              pre-push.sample           reference-transaction
fsmonitor-watchman.sample post-update.sample        pre-rebase.sample         update.sample
post-applypatch           pre-applypatch.sample     pre-receive.sample
post-checkout             pre-auto-gc               prepare-commit-msg

Cada vez que git ejecuta un comando que dispara un hook, ejecutará el script del hook correspondiente. Por ejemplo, cuando haces un commit, git ejecuta el hook commit-msg. Aquí es donde entra git.emoji. Proporciona un script que puedes usar como hook commit-msg para que selecciones un emoji para tu mensaje de commit.

Por defecto, todos son scripts de shell de muestra vacíos. Después de ejecutar git.emoji setup-hooks, el hook commit-msg de tu repositorio se actualizará para incluir el script de git.emoji. Este script llamará a git.emoji para que selecciones un emoji para tu mensaje de commit:

$ cat .git/hooks/commit-msg
#!/bin/bash

## START GIT.EMOJI
if [[ -x /Users/i/go/bin/git.emoji ]]; then
    /Users/i/go/bin/git.emoji gmoji-commit-msg "$@" < /dev/tty || exit $?
fi
## END GIT.EMOJI

Así que ya tienes la idea. Cada vez que hagas un commit, el hook commit-msg llamará a git.emoji, que te pedirá seleccionar un emoji para tu mensaje de commit. Una vez que hayas seleccionado un emoji, git.emoji lo agregará a tu mensaje de commit editando el archivo .git/COMMIT_EDITMSG.

Otro hook relacionado es prepare-commit-msg, que se llama antes de que se abra el editor del mensaje de commit. Aquí es donde git.emoji puede agregar automáticamente un emoji a tu mensaje de commit cuando estás haciendo un rebase, merge o cherry-pick.

Conclusión

git.emoji trae una forma fresca y expresiva de hacer commit de tu código agregando emojis a tus mensajes. Mejora la comunicación dentro de tu equipo al hacer que la intención del commit sea clara y divertida, ya sea que estés corrigiendo bugs, agregando funcionalidades o lanzando actualizaciones. Con su integración fluida en los git hooks y una configuración de emojis personalizable, es una herramienta práctica para elevar tu flujo de trabajo.

Entonces, ¿por qué quedarte con mensajes de commit aburridos cuando puedes hacerlos vibrantes y significativos? ¡Empieza tu año nuevo y mejora tus commits con emojis! 🎉

Autor

Soy Oliver Nguyen -- ingeniero de software en Connectly.ai. Disfruto aprender y ver una mejor versión de mí mismo cada día. Ocasionalmente lanzo nuevos proyectos de código abierto. Comparto conocimiento y reflexiones durante mi camino.

Esta publicación también está publicada en olivernguyen.io.