Commits semânticos são uma prática recomendada para manter um histórico de commits claro e informativo. Eles seguem uma convenção específica que descreve o tipo de mudança feita, o escopo (opcional) e uma descrição breve e concisa..
<tipo>(<escopo opcional>): <descrição>
<mensagem detalhada opcional>
<informações adicionais, como referências a issues ou PRs>
- feat: Introdução de uma nova funcionalidade.
- fix: Correção de um bug.
- docs: Alterações na documentação.
- style: Mudanças que não afetam a lógica do código (espaços em branco, formatação, ponto e vírgula ausente, etc.).
- refactor: Mudanças no código que não corrigem bugs nem adicionam funcionalidades.
- perf: Mudanças que melhoram a performance.
- test: Adição ou correção de testes.
- build: Mudanças que afetam o sistema de build ou dependências externas (scopes de exemplos: gulp, broccoli, npm).
- ci: Mudanças em arquivos e scripts de configuração de CI (exemplos de scopes: Travis, Circle, BrowserStack, SauceLabs).
- chore: Outras mudanças que não modificam src ou arquivos de teste.
- revert: Reverte um commit anterior.
git commit -m "feat(auth): adicionar funcionalidade de recuperação de senha"
git commit -m "fix(api): corrigir erro de validação no endpoint de login"
git commit -m "docs(README): adicionar instruções de configuração do projeto"
git commit -m "style: corrigir formatação do código no arquivo main.js"
Os commits semânticos geralmente são escritos no infinitivo por várias razões:
- Clareza e Consistência
Escrever commits no infinitivo ajuda a manter a clareza e a consistência no histórico de commits. Isso torna mais fácil para qualquer pessoa entender a intenção do commit.
- Ação Descritiva
O infinitivo descreve a ação de maneira direta e clara, o que ajuda a entender exatamente o que o commit faz. Por exemplo, "adicionar funcionalidade de login" é mais claro do que "adiciona funcionalidade de login".
- Melhor Legibilidade
Mensagens de commit no infinitivo são frequentemente mais legíveis e padronizadas, o que facilita a leitura rápida do histórico de commits.
- Padrão de Indústria
Seguir convenções como o Conventional Commits e outros padrões da indústria que recomendam o uso do infinitivo ajuda a alinhar-se com práticas comuns adotadas por muitas equipes e projetos.
update files
(muito vago)fix
(não especifica o que foi corrigido)changes made
(não informa quais mudanças foram feitas).
(não fornece nenhuma informação útil)
Para commits mais complexos, você pode adicionar uma mensagem detalhada e informações adicionais, como referência a issues ou pull requests:
git commit -m "feat(auth): adicionar funcionalidade de recuperação de senha
Adiciona a capacidade de os usuários solicitarem a recuperação de senha
através de um email de recuperação. Inclui validação no backend e envio
de emails.
Existem várias ferramentas que podem ajudar a seguir a convenção de commits semânticos
Clique na imagem para acessar o repositório
npm install -g commitizen
git cz
Clique na imagem para acessar o repositório
Configurar no package.json:
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
"Não quero perder a pequena família que me resta. Eu vou vencer, não importa o que aconteça! Eu vou sobreviver, não importa o que aconteça. Só aos vitoriosos é permitido viver" Mikasa Ackerman