📋 Padronização do Histórico
O Conventional Commits é uma convenção simples para padronizar as mensagens de commit no Git. Ele define um conjunto de regras para criar um histórico de projeto explícito, legível e organizado. Em vez de mensagens genéricas, utilizamos uma estrutura fixa que permite a qualquer desenvolvedor entender imediatamente o impacto de uma alteração no código.
🏗️ Estrutura Básica
🎯 Por que adotar?
- Rastreabilidade: Facilita a busca por alterações específicas.
- Clareza: Toda a equipe fala a mesma "língua".
- Geração de Changelogs: Permite a geração automática de notas de versão.
⚖️ O Impacto na Prática
Como era (Antes)
- > corrige o erro da tela
- > atualizando arquivos
- > novo botao
Como fica (Depois)
- > fix(#123): resolve erro no carregamento da página de clientes
- > chore: atualiza versão da biblioteca Python
- > feat: adiciona botão de exportar para PDF
🏷️ Tipos de Commit
| Tipo | Quando Usar | Exemplo Prático |
|---|---|---|
| feat | Adição de uma nova funcionalidade ou recurso ao sistema. | feat: adiciona funcionalidade de exportação para Excel |
| fix | Correção de um bug, erro ou comportamento inesperado. | fix: resolve erro de cálculo de impostos na fatura |
| refactor | Alteração no código que não adiciona recurso nem corrige bug, mas melhora a estrutura. | refactor: simplifica a lógica de validação de datas |
| chore | Manutenção, atualizações de dependências, ferramentas de build ou scripts. | chore: atualiza versão da biblioteca Python |
| docs | Inclusão ou alteração feita exclusivamente em arquivos de documentação. | docs: atualiza instruções de instalação no README |
| style | Ajustes estéticos (formatação, espaços, aspas) que não alteram a execução do código. | style: padroniza indentação para 2 espaços |
| test | Adição de testes ausentes ou correção de testes existentes. | test: adiciona teste unitário para o login |
| perf | Uma alteração de código que melhora o desempenho/performance. | perf: melhora o tempo de carregamento da lista |
⚠️ Atenção (Breaking Changes)
Se um commit fizer uma alteração que quebre a compatibilidade com o que existia antes (ex: mudar a estrutura do banco de dados), adicionamos um ! após o tipo/escopo. Exemplo: feat!: altera estrutura da tabela de usuários.
🔗 Vinculação com Tarefas
Uma das maiores vantagens dessa convenção é a facilidade de vincular diretamente o código gerado a uma tarefa específica no nosso sistema de gestão (como o Planner no Teams). Ao receber uma tarefa que possui um número de identificação (ID), podemos referenciar esse ID diretamente no escopo da mensagem do commit.
Exemplo: Se estivermos trabalhando na resolução de um bug referente à tarefa #123, o commit será:
Dessa forma, qualquer pessoa que consultar a tarefa #123 saberá exatamente qual pedaço de código foi alterado para resolvê-la.
📚 Mais Informações
Para documentação completa, acesse o site oficial:
conventionalcommits.org/pt-br/