O Que É um Conventional Commit?
Um conventional commit é um commit cuja mensagem segue um formato estruturado, como um prefixo de tipo e uma descrição, para que ferramentas e pessoas possam interpretar a intenção.
Conventional Commits é uma convenção leve para escrever mensagens de commit de forma consistente e legível por máquina. Ao começar cada mensagem com um tipo como feat ou fix, as equipes tornam o histórico mais fácil de percorrer e, o que é crucial, permitem que ferramentas automatizem o versionamento e os changelogs.
O formato
Uma mensagem de conventional commit começa com um tipo, um escopo opcional entre parênteses, dois-pontos e uma descrição curta. Tipos comuns incluem feat para uma funcionalidade, fix para uma correção de bug, docs, refactor, test e chore. Um corpo e um rodapé opcionais podem adicionar detalhes ou sinalizar breaking changes.
Uma mensagem de conventional commit
A estrutura é fácil de escrever assim que vira hábito.
git commit -m "feat(auth): add password reset flow"
git commit -m "fix(api): handle empty response body"Por que a estrutura ajuda
Um formato consistente torna o histórico legível num relance e permite que ferramentas raciocinem sobre ele. O tipo informa a natureza de cada mudança, os escopos agrupam trabalhos relacionados e uma breaking change marcada sinaliza um incremento de versão maior. As pessoas também se beneficiam: o log se lê como um registro claro e categorizado.
Conventional commits em CI/CD
Ferramentas de release automatizadas leem as mensagens de conventional commit para decidir a próxima versão e gerar changelogs. Um fix produz um incremento de patch, um feat um incremento minor e uma breaking change um incremento major, tudo sem edições manuais de versão. Isso transforma a disciplina de commit em um pipeline de release totalmente automatizado.
Adotando a convenção
- Comece cada mensagem com um tipo como
feat,fixoudocs. - Adicione um escopo para agrupar mudanças por área quando for útil.
- Marque breaking changes para que as ferramentas incrementem a versão major.
- Combine com uma ferramenta de release para automatizar o versionamento a partir do histórico.
Principais conclusões
- Um conventional commit segue um formato de mensagem estruturado e interpretável.
- Prefixos de tipo como feat e fix comunicam a natureza de uma mudança.
- Ferramentas de release os leem para automatizar o versionamento e os changelogs.