Connectly
Engenharia2025-01-02

Faça commit do seu código com estilo usando o git.emoji

Por Oliver Nguyen

Faça commit do seu código com estilo usando o git.emoji

Você já ficou entediado com as mesmas mensagens de commit de sempre, todas começando com "update", "fix" ou "feat"? Sabia que os emojis são o avanço mais recente na comunicação humana? Eles conseguem transmitir emoções e ideias em um único caractere e dar vida às suas mensagens! Pense bem: até quando alienígenas chegarem à Terra, eles vão entender rapidamente o significado desses pequenos caracteres! 😎

Ano novo, você novo! Vamos deixar os commits entediantes no passado e abraçar a magia dos emojis para transformar cada commit em uma celebração! 🥳✨

Introdução

O git.emoji é uma ferramenta escrita em Go que permite usar emojis nas suas mensagens de commit. Ele fornece uma interface de linha de comando simples para ajudar você a escolher o emoji certo para o seu commit. Ele fornece uma interface de linha de comando simples para ajudar você a escolher o emoji certo para o seu commit.

Seja corrigindo um bug, adicionando uma nova feature ou atualizando a documentação, agora você pode se expressar com emojis!

Veja o vídeo

Instalação

Para instalar o git.emoji, você precisa ter o Go instalado na sua máquina. Você pode baixar a versão mais recente do Go no site oficial. Depois de instalar o Go, você pode instalar o git.emoji com o seguinte comando:

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

Agora você deve ter o git.emoji instalado na sua máquina, geralmente em ~/go/bin/git.emoji. Certifique-se de adicionar esse diretório ao seu PATH para poder usar o git.emoji de qualquer lugar.

Vamos verificar se ele foi instalado corretamente:

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

E tentar executar o 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.

Configuração

Para começar a usar o git.emoji, você precisa configurar os git hooks no seu repositório. Você pode fazer isso executando o seguinte comando no seu repositório:

git.emoji setup-hooks

Esse comando vai configurar os git hooks necessários para usar o git.emoji nos seus commits. Agora você já pode começar a commitar com emojis!

Seu primeiro commit com emoji

Vamos começar com um commit simples:

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

Esse comando vai abrir um prompt para você escolher um emoji para a sua mensagem de commit. Você pode escolher em uma lista de emojis e adicionar uma mensagem para descrever seu commit. Depois de escolher um emoji e adicionar uma mensagem, o commit será feito com o emoji e a mensagem.

--- 👉 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 exemplo, se você quiser fazer commit de uma nova feature, pode digitar o número 1 ou a abreviação ft para selecionar a categoria Features e o emoji 💻. Cada categoria tem uma lista de emojis para você escolher para descrever o seu commit. Para usar o próximo emoji, você pode digitar 1a ou ft1 para selecionar o emoji ✨, e assim por diante.

Fazendo commit com emoji direto pela linha de comando

Além de usar o prompt interativo, você também pode fazer commit com um emoji direto pela linha de comando. Você pode usar a flag -<abrev> para selecionar o emoji do seu commit. Por exemplo, para fazer commit de uma nova feature, você pode usar o seguinte 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

Assim, você consegue fazer commit das suas mudanças rapidamente, com emojis, sem passar pelo prompt interativo.

Use o git.emoji como um wrapper para o git

Se você não gosta de digitar git.emoji toda vez que quiser fazer um commit, você pode criar um alias do git.emoji como um wrapper para o git. Adicione a seguinte linha ao arquivo de configuração do seu shell (por exemplo, .bashrc, .zshrc, .bash_profile):

alias git=git.emoji

Agora você pode usar o git normalmente, e ele vai automaticamente usar o git.emoji para os seus commits.

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

Funciona com rebase, merge e outros comandos do git

Não apenas nos commits: sempre que você usar comandos do git que envolvem fazer commit, como rebase, merge ou cherry-pick, se houver uma mensagem de commit sem emoji, o git.emoji vai pedir que você escolha um emoji para a mensagem. Assim, você garante que todos os seus commits fiquem consistentes e expressivos.

Personalize seus emojis

Você não precisa usar os emojis padrão fornecidos pelo git.emoji. Você sempre pode usar seus emojis favoritos, tanto digitando o emoji diretamente ao fazer commit das suas mudanças quanto personalizando os emojis no seu arquivo local emoji.config.

Atualmente, ele suporta dois locais para o arquivo emoji.config:

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

Com a primeira forma, você pode personalizar e compartilhar os emojis com sua equipe no repositório. Com a segunda forma, você pode personalizar os emojis apenas para o seu repositório local.

Para começar a personalizar seus emojis, você pode executar este comando:

git.emoji write-config

Isso vai perguntar onde você quer salvar o arquivo 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:

O arquivo de configuração vai se parecer com isso:

[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

É só editar o arquivo, adicionar seus emojis favoritos, criar as categorias que quiser e salvar o arquivo. Agora você pode usar esses emojis nos seus commits!

Como funciona

O git.emoji funciona configurando git hooks no seu repositório para interceptar as mensagens de commit. Quando você faz um commit, o git hook chama o git.emoji para pedir que você escolha um emoji para a mensagem de commit. Depois de escolher um emoji, o git.emoji adiciona o emoji à mensagem de commit e finaliza o commit.

Por debaixo dos hooks

Os git hooks são configurados no diretório .git/hooks do seu repositório. Se você olhar nesse diretório, verá vários arquivos de hook:

$ 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

Sempre que o git executa um comando que dispara um hook, ele vai executar o script de hook correspondente. Por exemplo, quando você faz um commit, o git executa o hook commit-msg. É aqui que o git.emoji entra em ação. Ele fornece um script que você pode usar como o hook commit-msg para pedir que você escolha um emoji para a sua mensagem de commit.

Por padrão, todos eles são scripts shell de exemplo vazios. Depois de executar o git.emoji setup-hooks, o hook commit-msg do seu repositório será atualizado para incluir o script do git.emoji. Esse script vai chamar o git.emoji para pedir que você escolha um emoji para a sua mensagem 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

Então você já entendeu a ideia. Sempre que você faz um commit, o hook commit-msg chama o git.emoji, que pede que você escolha um emoji para a sua mensagem de commit. Depois de escolher um emoji, o git.emoji adiciona o emoji à mensagem de commit editando o arquivo .git/COMMIT_EDITMSG.

Outro hook relacionado é o prepare-commit-msg, que é chamado antes de o editor de mensagem de commit ser aberto. É aí que o git.emoji pode adicionar automaticamente um emoji à sua mensagem de commit quando você está fazendo um rebase, merge ou cherry-pick.

Conclusão

O git.emoji traz uma forma nova e expressiva de fazer commit do seu código, adicionando emojis às suas mensagens. Ele melhora a comunicação dentro da sua equipe, deixando a intenção do commit clara e divertida, seja você corrigindo bugs, adicionando features ou lançando atualizações. Com sua integração perfeita nos git hooks e uma configuração de emoji personalizável, é uma ferramenta prática para elevar o seu workflow.

Então, por que continuar com mensagens de commit entediantes quando você pode torná-las vibrantes e significativas? Comece o seu ano novo e faça um upgrade nos seus commits com emojis! 🎉

Autor

Eu sou o Oliver Nguyen -- engenheiro de software na Connectly.ai. Gosto de aprender e de me tornar uma versão melhor de mim mesmo todos os dias. De vez em quando, crio novos projetos open source. Compartilho conhecimento e reflexões durante essa jornada.

O post também foi publicado em olivernguyen.io.