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)