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)