Article image
William Silva
William Silva17/12/2024 16:53
Compartilhe

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:

  1. Consistência Garantida
  2. Ele assegura que todas as mensagens de commit sigam um formato padronizado, facilitando a navegação no histórico do Git.
  3. Facilidade de Uso
  4. Com seu CLI interativo, até mesmo quem não está familiarizado com as convenções pode criar mensagens adequadas, evitando erros comuns.
  5. Automação Poderosa
  6. Mensagens padronizadas abrem portas para ferramentas como o semantic-release, que automatizam versionamento e geração de changelogs.
  7. Colaboração Aprimorada
  8. 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

  1. Tipo do Commit
  2. Escolha categorias como feat (nova funcionalidade), fix (correção de bug), docs (documentação), entre outras.
  3. Escopo (Opcional)
  4. Indique qual parte do projeto é afetada, como api, auth ou ui.
  5. Descrição Curta
  6. Um resumo breve da mudança.
  7. Descrição Longa (Opcional)
  8. Adicione mais detalhes, se necessário.
  9. Notas de Quebra de Compatibilidade (Opcional)
  10. Inclua a tag BREAKING CHANGE se houver mudanças incompatíveis.
  11. Referências (Opcional)
  12. Relacione issues ou tickets, por exemplo, #123.

image

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:

  1. Changelog Automático
  2. Ferramentas como o conventional-changelog geram changelogs detalhados com base no histórico do Git.
  3. Versionamento Semântico
  4. O Commitizen trabalha perfeitamente com o semantic-release, automatizando a gestão de versões (major, minor, patch).
  5. Integração com CI/CD
  6. 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/

Compartilhe
Comentários (2)

RS

Rafaela Soliva - 17/12/2024 19:42

Ferramenta sensacional! Obrigada por compartilhar!

João Deus
João Deus - 17/12/2024 19:23

Muito bom o tópico, eu recentemente tive minha primeira oportunidade como um dev, e posso falar que a padronização de commits foi e em alguns momentos ainda se torna um desafio.