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!
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.