Muitos desenvolvedores têm o hábito de utilizar apenas o comando git commit -m seguido de
uma mensagem genérica. No entanto, para projetos profissionais e colaborativos, é fundamental adotar
uma metodologia que organize e categorize as alterações, facilitando a leitura do histórico e a
manutenção do software.
📐 A metodologia Conventional Commits
Baseado em padrões como o do Angular, o Conventional Commits é uma metodologia que ajuda a categorizar cada alteração de forma clara. A estrutura básica envolve identificar o tipo de mudança (como uma nova funcionalidade ou uma correção) antes da mensagem principal.
<tipo>: <resumo no imperativo>
Os tipos mais comuns utilizados são:
| Tipo | Quando usar |
|---|---|
feat |
Para novas funcionalidades. |
fix |
Para correções de bugs. |
docs |
Para alterações apenas na documentação. |
style |
Para alterações que não afetam o sentido do código (espaços em branco, formatação, ponto e vírgula faltando, etc.). |
refactor |
Para alterações no código que não corrigem bugs nem adicionam funcionalidades. |
perf |
Para mudanças de código que melhoram o desempenho. |
test |
Para adição ou correção de testes. |
chore |
Para atualizações de tarefas de build, configurações de ferramentas ou bibliotecas auxiliares. |
✍️ A regra de ouro do título
Ao escrever o título do commit, você deve sempre seguir uma lógica gramatical: a mensagem deve completar a frase "Se eu aplicar este commit, ele vai...". Por esse motivo:
- Não use o passado: evite termos como
addedoufixed. - Use o presente/imperativo: prefira
add supportoufix bug.
feat: add support to spanish on uploads
💡 O "porquê" e o "o quê": o poder da descrição
Enquanto o título resume a ação, a descrição do commit é o espaço para detalhar a motivação e o conteúdo técnico da alteração.
- Motivação: é a parte mais importante. Não basta dizer que algo foi feito "porque pediram"; é necessário explicar o contexto (por exemplo: a necessidade de suportar um novo idioma devido a uma parceria comercial).
- Mudanças técnicas: descreva o que o commit introduz, como novos componentes, alterações em colunas do banco de dados ou novas lógicas de negócio. Se o commit for pequeno, ele pode ser autodescritivo, mas commits mais complexos exigem maior profundidade na descrição.
Escrever esse corpo é inviável dentro de um
git commit -m. Mostro como resolver isso no artigo sobre
configurar o VS Code como editor padrão
de commits.
🌎 Idioma e consistência
Embora nomes de variáveis devam ser preferencialmente em inglês, a mensagem de commit não precisa seguir essa regra obrigatoriamente. Se o seu time é brasileiro, o software é voltado para o mercado nacional e a equipe se sente mais confortável em português, não há problema em manter os commits no idioma nativo. O objetivo principal é a comunicação clara entre os membros do time.
🔄 Fluxo de trabalho
Após realizar um commit bem estruturado, o processo ideal segue para a abertura de um
Pull Request (PR). Isso permite que o código seja revisado por outros membros da
equipe antes de ser incorporado à branch principal (main), garantindo a qualidade e a
integridade do projeto.
Um bom commit deve ser informativo o suficiente para que, no futuro, qualquer desenvolvedor consiga entender o motivo de aquela alteração ter sido feita sem precisar decifrar o código-fonte.