DEV Community

Edson Costa for Devs Norte

Posted on

1

Padronizando Commits com Commitizen e Husky

Os commits bem estruturados são essenciais para manter a clareza e organização em projetos de desenvolvimento de software. Quando várias pessoas colaboram em um projeto, é crucial manter um padrão para mensagens de commit, facilitando a compreensão das alterações realizadas em um determinado momento. Neste artigo, exploraremos como padronizar commits usando as ferramentas Commitizen e Husky.

Por que padronizar commits?

Padronizar commits traz uma série de benefícios para equipes de desenvolvimento:

  1. Clareza: Mensagens de commit bem estruturadas tornam mais fácil entender o propósito das alterações.
  2. Rastreabilidade: Com commits padronizados, é mais simples rastrear a evolução do código ao longo do tempo.
  3. Facilidade de Reversão: Commits bem documentados facilitam a identificação de alterações específicas, tornando mais fácil reverter mudanças indesejadas.
  4. Colaboração: Padronizar commits promove uma melhor colaboração entre membros da equipe, pois todos seguem as mesmas convenções.

Introdução ao Commitizen e Husky

Commitizen é uma ferramenta que visa facilitar a criação de commits padronizados seguindo as convenções do Conventional Commits. Ele fornece uma interface interativa para guiar os desenvolvedores na criação de mensagens de commit consistentes.

Husky, por outro lado, é uma biblioteca que nos permite configurar ganchos (hooks) Git facilmente. Podemos usá-lo para executar scripts automatizados antes de certos eventos do Git, como commit, push e outros.

Passos para padronizar commits com Commitizen e Husky

Aqui estão os passos necessários para padronizar commits em seu projeto:

1. Instalação do Commitizen e Husky

Certifique-se de que o Node.js esteja instalado em seu sistema. Em seguida, instale o Commitizen e Husky como dependências de desenvolvimento em seu projeto:

npm install --save-dev commitizen husky
Enter fullscreen mode Exit fullscreen mode

2. Configuração do Commitizen

Depois de instalar o Commitizen, você pode configurá-lo para seu projeto executando o seguinte comando:

npx commitizen init cz-conventional-changelog --save-dev --save-exact
Enter fullscreen mode Exit fullscreen mode

Isso instalará o adaptador cz-conventional-changelog e configurará o Commitizen para usar o Conventional Commits.

3. Configuração do Husky

Com o Husky, podemos configurar ganchos Git para executar scripts antes de certos eventos. Para configurar o Husky, adicione o seguinte script ao seu package.json:

"husky": {
  "hooks": {
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
  }
}
Enter fullscreen mode Exit fullscreen mode

Este script usa o commitlint para verificar se a mensagem de commit está em conformidade com as convenções especificadas.

4. Adicionar Configurações de Commitlint

O commitlint é uma ferramenta de validação de mensagens de commit baseada em regras. É comumente usado para garantir que as mensagens de commit sigam um formato específico. Você pode instalar o commitlint e as configurações do Conventional Commits usando:

npm install --save-dev @commitlint/{config-conventional,cli}
Enter fullscreen mode Exit fullscreen mode

Em seguida, crie um arquivo commitlint.config.js na raiz do seu projeto e adicione o seguinte conteúdo:

module.exports = {extends: ['@commitlint/config-conventional']};
Enter fullscreen mode Exit fullscreen mode

5. Usando Commitizen para commits

Agora que tudo está configurado, ao executar git commit, você será levado a uma interface interativa fornecida pelo Commitizen para criar mensagens de commit.

Conclusão

Padronizar commits é uma prática recomendada que promove clareza, rastreabilidade e colaboração em projetos de desenv

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay