A importância do commit semântico
Por Kaio Lima
Atualizado em 18/06/2024
✏️ Introdução
O commit semântico envolve a criação de mensagens de commit significativas e descritivas, seguindo um padrão bem definido. Apresento algumas razões pelas quais o commit semântico é importante:
- Comunicação clara
- Histórico Legível
- Facilidade no uso de ferramentas de automação
- Organização pessoal e trabalho em grupo
💡 Tipos mais usados e estrutura
**feat** - Commits do tipo feat indicam que seu trecho de código está incluindo um novo recurso (se relaciona com o MINOR do versionamento semântico).
**fix** - Commits do tipo fix indicam que seu trecho de código commitado está solucionando um problema (bug fix), (se relaciona com o PATCH do versionamento semântico).
**docs** - Commits do tipo docs indicam que houveram mudanças na documentação, como por exemplo no Readme do seu repositório. (Não inclui alterações em código).
**test** - Commits do tipo test são utilizados quando são realizadas alterações em testes, seja criando, alterando ou excluindo testes unitários. (Não inclui alterações em código)
**build** - Commits do tipo build são utilizados quando são realizadas modificações em arquivos de build e dependências.
**perf** - Commits do tipo perf servem para identificar quaisquer alterações de código que estejam relacionadas a performance.
**style** - Commits do tipo style indicam que houveram alterações referentes a formatação de código, semicolons, trailing spaces, lint... (Não inclui alterações em código).
**refactor** - Commits do tipo refactor referem-se a mudanças devido a refatorações que não alterem sua funcionalidade, como por exemplo, uma alteração no formato como é processada determinada parte da tela, mas que manteve a mesma funcionalidade, ou melhorias de performance devido a um code review.
**chore** - Commits do tipo chore indicam atualizações de tarefas de build, configurações de administrador, pacotes... como por exemplo adicionar um pacote no gitignore. (Não inclui alterações em código)
**cleanup** - Commits do tipo cleanup são utilizados para remover código comentado, trechos desnecessários ou qualquer outra forma de limpeza do código-fonte, visando aprimorar sua legibilidade e manutenção.
**remove** - Commits do tipo remove indicam a exclusão de arquivos, diretórios ou funcionalidades obsoletas ou não utilizadas, reduzindo o tamanho e a complexidade do projeto e mantendo-o mais organizado.
🖥️ Commitizen
O Commitizen pressupõe que sua equipe utilize um padrão específico para escrever mensagens de commit e, com base nesse padrão, ele pode atualizar a versão do seu projeto, criar o changelog e atualizar arquivos.
Por padrão, o Commitizen utiliza commits convencionais, mas você pode criar seu próprio conjunto de regras e publicá-las.
Usar um conjunto padronizado de regras para escrever commits torna-os mais fáceis de ler e reforça a escrita de commits descritivos.
- Requisitos: Python e Git
Instalação do Commitizen no seu sistema:
pip install --user -U Commitizen
Adicionando o Commitizen no seu projeto:
pip install -U commitizen
Uso na prática:
- Faça um git add dos arquivos que deseja commitar
git add .
- Faça um cz commit no terminal
cz commit
Algumas opções default surgirão:
A partir delas você começa a montar seu commit semântico de forma simples e rápida
Após criar o seu commit, basta fazer o git push:
git push
Adendo - Existe uma extensão no VS Code chamada "Conventional Commits" que realiza o mesmo trabalho de forma "mais simples" sem a necessidade de usar o terminal. Ponto positivo: é mais fácil de usar, mas não oferece a mesma integração que o Commitizen possui com plataformas como o Jira, que ajudam a automatizar o fluxo de trabalho em técnicas como Kanban, por exemplo.
🎓 Conclusão
Em resumo, o commit semântico melhora a colaboração, a rastreabilidade e a qualidade do código, tornando-o uma prática valiosa para qualquer desenvolvedor. Espero que esse material ajude de alguma forma!