Introdução
Commits semânticos são uma forma de padronizar as mensagens de commit, facilitando a leitura e interpretação do histórico de alterações de um projeto. Com uma mensagem de commit bem estruturada, é possível identificar rapidamente o propósito da alteração, o contexto e a motivação por trás da mudança.
Além disso, as mensagens de commit semânticas são essenciais para a geração automática de changelogs, que são registros de todas as alterações realizadas em um projeto, organizadas por versão e de forma estruturada.
Regras
Para escrever mensagens de commit semânticas, é recomendado seguir um padrão pré-definido. O padrão que seguiremos é o seguinte:
1<type>(<scope>): <description>Nessa estrutura o tipo e descrição do commit são obrigatórios, enquanto o escopo é opcional. Abaixo, temos uma descrição detalhada de cada possível tipo de commit:
feat:Uma nova funcionalidade foi adicionada ao projeto.fix:Correção de um bug ou erro no código.hotfix:Correção rápida e urgente.docs:Alterações na documentação.style:Alterações de estilo de código (espaços, formatação, etc.).refactor:Refatoração de código sem adicionar novas funcionalidades ou corrigir bugs.test:Adição ou atualização de testes.chore:Alterações em ferramentas de build, bibliotecas, etc.build:Alterações no sistema de build ou dependências.ci:Alterações na configuração ou scripts de CI.cleanup:Limpeza de código.lint:Correções de linting de código.remove:Remoção de código, arquivo ou funcionalidade.perf:Melhorias de desempenho.revert:Reversão de um commit anterior.
Utilize a descrição para fornecer mais detalhes sobre o que foi alterado, evitando mensagens genéricas e pouco informativas. Lembre-se de que a mensagem de commit deve ser escrita no imperativo, ou seja, descrevendo o que a alteração faz, e não o que ela fez.
Também é possível adicionar um corpo à mensagem de commit, caso seja necessário fornecer mais informações sobre a alteração realizada. O corpo deve ser separado da descrição por uma linha em branco e deve ser utilizado para explicar o motivo da alteração, as decisões tomadas e qualquer informação adicional relevante.