Cada mensagem de commit consiste em um cabeçalho, um corpo e um rodapé.
Tem um formato pré-definido, que inclui um tipo e um título:
<tipo>([escopo opcional]): <título>
[corpo opcional]
[rodapé opcional]
O cabeçalho é obrigatório.
Qualquer linha da mensagem do commit não pode ter mais de 100 caracteres! Assim fica mais fácil para ler no GitHub, Gitlab e outras ferramentas de git.
Deve ser um dos seguintes:
- build: alterações que afetam o sistema de build ou dependências externas
- static: alterações no conteúdo de arquivos estáticos (dados .json, imagens, etc)
- ci: Alterações em nossos arquivos e scripts de configuração de CI
- cd: Alterações em nossos arquivos e scripts de configuração para CD
- docs: somente alterações na documentação
- feat: um novo recurso
- fix: uma correção de bug
- perf: uma alteração de código que melhora o desempenho
- refactor: uma alteração de código que não corrige um bug nem adiciona um recurso
- improve: alguma alteração de código que melhore o comportamento de um recurso
- style: alterações que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula, etc)
- test: Adicionando testes ausentes ou corrigindo testes existentes
- revert: reverter para um commit anterior
O título contém uma descrição sucinta da mudança:
- use o imperativo, tempo presente: "mudança" não "mudou" nem "muda"
- não capitalize a primeira letra
- sem ponto (.) no final
Um corpo de mensagem de commit mais longo PODE ser fornecido após o título, fornecendo informações contextuais adicionais sobre as alterações no código.
Configure a mensagem com um wrap de 80 caracteres
Use para explicar "o que" e "porque" foi realizado essa modificação, ao invez de "como".
O corpo DEVE começar depois de uma linha em branco após a descrição.
Um rodapé PODE ser fornecido depois de uma linha em branco após o corpo.
Caso exista um ticket no jira, criar um referência assim: issue TP-666
ou closes issue TP-666
Se o commit reverte um commit anterior, ele deve começar por revert:
, seguido pelo cabeçalho do commit revertido.
No corpo, ele deve dizer: Isso reverte o commit <hash> .
, onde o hash é o SHA do commit sendo revertido.
feat: permitir que o objeto de configuração fornecido estenda outras configurações
BREAKING CHANGE: a chave `extends`, no arquivo de configuração, agora é utilizada
para estender outro arquivo de configuração
chore!: remove Node 6 da matriz de testes
BREAKING CHANGE: removendo Node 6 que atinge o final de vida em Abril
docs: ortografia correta de CHANGELOG
feat(lang): adiciona tradução para português brasileiro
fix: corrige pequenos erros de digitação no código
veja o ticket para detalhes sobre os erros de digitação corrigidos
closes issue #12
- Criação automatizada de CHANGELOGs
- Determinar automaticamente um aumento de versionamento semântico (com base nos tipos de commits)
- Comunicar a natureza das mudanças para colegas de equipe, o público e outras partes interessadas de forma padronizada
- Disparar processos de build e deploy
- Facilitar a contribuição de outras pessoas em seus projetos, permitindo que eles explorem um histórico de commits mais estruturado e com melhor rastreabilidade