Commitizen: Simplifique e Padronize Suas Mensagens de Commit!
- #GitHub
- #Git
No mundo do desenvolvimento, a consistência é um dos pilares para projetos de sucesso, especialmente em equipes grandes. É aí que entra o Commitizen, uma ferramenta projetada para padronizar mensagens de commit e facilitar o trabalho com convenções como os Conventional Commits. Com um CLI interativo, ele transforma o processo de criar mensagens de commit bem estruturadas em algo simples e intuitivo.
Por Que Usar o Commitizen?
Adotar o Commitizen no seu fluxo de trabalho traz benefícios claros:
- Consistência Garantida
- Ele assegura que todas as mensagens de commit sigam um formato padronizado, facilitando a navegação no histórico do Git.
- Facilidade de Uso
- Com seu CLI interativo, até mesmo quem não está familiarizado com as convenções pode criar mensagens adequadas, evitando erros comuns.
- Automação Poderosa
- Mensagens padronizadas abrem portas para ferramentas como o semantic-release, que automatizam versionamento e geração de changelogs.
- Colaboração Aprimorada
- Em equipes grandes, um histórico claro e bem organizado melhora a comunicação e a produtividade.
Como Instalar e Configurar o Commitizen
1. Instalação Global
Use o comando abaixo para instalar o Commitizen globalmente:
npm install -g commitizen
2. Configuração no Projeto
No diretório do seu projeto, configure o Commitizen com um adaptador, como o cz-conventional-changelog
:
commitizen init cz-conventional-changelog --save-dev --save-exact
Como Usar o Commitizen
Substitua o comando clássico git commit
por git cz
. Isso abrirá um assistente interativo que guiará você na criação da mensagem de commit.
Passo a Passo: Criando um Commit
- Tipo do Commit
- Escolha categorias como
feat
(nova funcionalidade),fix
(correção de bug),docs
(documentação), entre outras. - Escopo (Opcional)
- Indique qual parte do projeto é afetada, como
api
,auth
ouui
. - Descrição Curta
- Um resumo breve da mudança.
- Descrição Longa (Opcional)
- Adicione mais detalhes, se necessário.
- Notas de Quebra de Compatibilidade (Opcional)
- Inclua a tag
BREAKING CHANGE
se houver mudanças incompatíveis. - Referências (Opcional)
- Relacione issues ou tickets, por exemplo,
#123
.
Exemplo de Mensagem Gerada
feat(api): adiciona autenticação via OAuth
Adicionada funcionalidade de autenticação via OAuth ao serviço de API.
BREAKING CHANGE: Tokens antigos não serão mais suportados.
Adaptadores: Personalize Seus Commits
O Commitizen utiliza adaptadores para definir o formato das mensagens de commit. Aqui estão algumas opções populares:
- cz-conventional-changelog (padrão): Segue os Conventional Commits.
- cz-customizable: Permite criar seus próprios modelos.
- cz-jira-smart-commit: Integra commits ao JIRA.
- cz-emoji: Adiciona emojis aos commits. 🎉
Como Trocar de Adaptador
Instale um novo adaptador, como o cz-customizable
:
npm install cz-customizable --save-dev
E configure o package.json
:
"config": {
"commitizen": {
"path": "./node_modules/cz-customizable"
}
}
Benefícios no Ciclo de Desenvolvimento
Adotar o Commitizen vai muito além de simples mensagens de commit:
- Changelog Automático
- Ferramentas como o
conventional-changelog
geram changelogs detalhados com base no histórico do Git. - Versionamento Semântico
- O Commitizen trabalha perfeitamente com o
semantic-release
, automatizando a gestão de versões (major, minor, patch). - Integração com CI/CD
- Mensagens padronizadas facilitam fluxos automatizados de integração e entrega contínua.
Exemplo de Configuração no package.json
Após configurar o Commitizen, seu arquivo package.json
pode ficar assim:
{
"scripts": {
"commit": "cz"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"devDependencies": {
"cz-conventional-changelog": "^3.3.0"
}
}
Agora, basta rodar:
npm run commit
Ferramentas Complementares
- Husky: Configure hooks de pré-commit para rodar o Commitizen automaticamente.
- Commitlint: Valide mensagens de commit e garanta a conformidade com padrões estabelecidos.
Transforme sua experiência com Git adotando o Commitizen hoje mesmo! Simplifique o trabalho em equipe, organize seu histórico e aproveite a automação no ciclo de desenvolvimento. 🚀
Links das ferramentas:
https://github.com/commitizen/cz-cli
https://cz-git.qbb.sh/