Padrão de commit
Seja trabalhando sozinho ou em um time com vários devs ora ou outra precisamos consultar commits anteriores. No começo eu acaba escrevendo meus commits como: "Correção”, “Melhorias” e “Update”, pois não sabia que existia uma boa prática pra isso. Assim, sempre que precisava buscar alguma alteração antiga era muito difícil e confuso... Até que descobrir o Conventional Commits.
1. O que é Conventional Commits?
Conventional commits trata-se de um padrão de escrita de mensagens de commit para facilitar a comunicação entre desenvolvedores e ajudar a manter o histórico do código organizado.
O padrão é bem simples:
<tipo>(escopo): <descrição>
2. Tipos
Os tipos é obrigatório e são sobre o que se trata o commit.
Só pode ser usado um por commit, caso esteja em dúvida sobre qual usar, provavelmente trata-se de uma grande mudança e é possível separar o código em dois ou mais commits.
Os tipos mais comuns são:
- feat: novo recurso
- fix: solucionando um problema
- docs: mudanças na documentação
- test: alterações em testes
- build: alterações em arquivos de build e dependências
- perf: alterações relacionadas à performance
- style: formatação de código e lint
- refactor: refatoração de código que não altera a funcionalidade
- chore: atualizações de tarefas de build, configurações de administrador e pacotes
- cleanup: limpeza no código, legibilidade
- remove: exclusão de código/arquivos que não são mais utilizados
- revert: rollback para commit específico
É possível adicionar um !
opcional na para chamar atenção a quebra de compatibilidade.
Exemplo:
feat!: descontinuar uso do componente card
3. Escopo
Este é opcional e trata-se sobre qual é o escopo específico abordado, como um componente, fluxo ou configuração.
4. Descrição
Para escrever a descrição podemos pensar: "se eu aplicar esse commit ele vai..." ou "O que essa alteração faz?" e completar a frase.
- Não é necessário colocar o porque do commit (motivação), mas sim o que de fato ele faz.
- É obrigatório escrever em inglês? Não, isso deve ser alinhado com outros devs que irão trabalhar no mesmo repositório, mas é sempre uma boa prática utilizar inglês para documentações.
5. Emojis
É possível utilizar um emoji no início da mensagem de commit representando sobre o que ele se trata.
É opicional e tem objetivo apenas visual para organização.
Os principais tipos são:
Tipo de commit | Emojis |
---|---|
Commit inicial | 🎉 :tada:
|
Tag de versão | 🔖 :bookmark:
|
Novo recurso | ✨ :sparkles:
|
Lista de ideias (tasks) | 🔜 :soon:
|
Bugfix | 🐛 :bug:
|
Documentação | 📚 :books:
|
Testes | 🧪 :test_tube:
|
Acessibilidade | ♿ :wheelchair:
|
Adicionando um teste | ✅ :white_check_mark:
|
Teste de aprovação | ✔️ :heavy_check_mark:
|
Acessibilidade | ♿ :wheelchair:
|
Texto | 📝 :pencil:
|
Package.json em JS | 📦 :package:
|
Em progresso | 🚧 :construction:
|
Arquivos de configuração | 🔧 :wrench:
|
Removendo uma dependência | ➖ :heavy_minus_sign:
|
Adicionando uma dependência | ➕ :heavy_plus_sign:
|
Revertendo mudanças | 💥 :boom:
|
Alterações de revisão de código | 👌 :ok_hand:
|
Refatoração | ♻️ :recycle:
|
Mover/Renomear | 🚚 :truck:
|
Acessibilidade | ♿ ♿ |
Deploy | 🚀 :rocket:
|
Segurança | 🔒️ :lock:
|
6. Exemplos:💻
Comando Git | Resultado no GitHub |
---|---|
git commit -m ":tada: Commit inicial" |
🎉 Commit inicial |
git commit -m ":books: docs: Atualização do README" |
📚 docs: Atualização do README |
git commit -m ":bug: fix(modal): Loop infinito na linha 50" |
🐛 fix: Loop infinito na linha 50 |
git commit -m ":sparkles: feat: Página de login" |
✨ feat: Página de login |
git commit -m ":zap: perf: Melhoria no tempo de resposta" |
⚡ perf: Melhoria no tempo de resposta |
git commit -m ":boom: fix: Revertendo mudanças ineficientes" |
💥 fix: Revertendo mudanças ineficientes |
git commit -m ":lipstick: feat!: Estilização CSS do formulário" |
💄 feat: Estilização CSS do formulário |
git commit -m ":test_tube: test: Criando novo teste" |
🧪 test: Criando novo teste |
git commit -m ":bulb: docs: Comentários sobre a função LoremIpsum( )" |
💡 docs: Comentários sobre a função LoremIpsum( ) |
git commit -m ":broom: cleanup: Eliminando blocos de código comentados e variáveis não utilizadas na função de validação de formulário" |
🧹 cleanup: Eliminando blocos de código comentados e variáveis não utilizadas na função de validação de formulário |
git commit -m ":wastebasket: remove: Removendo arquivos não utilizados do projeto para manter a organização e atualização contínua" |
🗑️ remove: Removendo arquivos não utilizados do projeto para manter a organização e atualização contínua |
Conclusão
Padronizar mensagens de commit pode parecer um detalhe pequeno, mas faz toda a diferença na organização e manutenção de um projeto. Usando Conventional Commits (com ou sem emojis), o histórico do repositório se torna mais claro, facilitando revisões e colaboração em equipe.
Se você ainda não segue um padrão, experimente adotar essa prática e veja como ela pode melhorar seu fluxo de trabalho!
💖 Obrigado por ler, escrevi este artigo no intuito de ajudar os Devs e também registrar mais um dos meus aprendizados.
Sinta-se à vontade para interagir e comentar.
Top comments (0)