Skip to content

Instantly share code, notes, and snippets.

@jlcarvalho
Forked from ivanrosolen/conventional_commits.md
Last active August 31, 2022 02:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlcarvalho/3c5163ec64dc7cbc6fa02e4b9e583ea8 to your computer and use it in GitHub Desktop.
Save jlcarvalho/3c5163ec64dc7cbc6fa02e4b9e583ea8 to your computer and use it in GitHub Desktop.
Guia para mensagens de commits

Guia para mensagens de commits

TLDR;

Nós utilizamos o Conventional Commits para padronizar as mensagens de commit, esse documento descreve o funcionamento desse padrão.

No entanto, para facilitar a nossa vida nós também usamos o Commitizen. Essa ferramenta nos ajuda a seguir a padronização através de uma CLI para realizar commits que pode ser acessado através do comando:

npm run commit

Captura de Tela 2022-08-30 às 23 41 45

Porquê padronizar os commits?

  • Criação automatizada de CHANGELOGs
  • Determinar automaticamente um aumento de versionamento semântico (com base nos tipos de commits)
  • Comunicar a natureza das mudanças para colegas de equipe, o público e outras partes interessadas de forma padronizada
  • Disparar processos de build e deploy
  • Facilitar a contribuição de outras pessoas em seus projetos, permitindo que eles explorem um histórico de commits mais estruturado e com melhor rastreabilidade

Como?

Cada mensagem de commit consiste em um cabeçalho, um corpo e um rodapé.

Cabeçalho

Tem um formato pré-definido, que inclui um tipo e um título:

<tipo>(<escopo opcional>): <título>

<corpo opcional>

<rodapé opcional>

Exemplos:
fix(integracao-erp): xxxxxxx
improve(app-toolbox): xxxxxxx
docs: instruções de iniciar projeto com docker

O cabeçalho é obrigatório.

Qualquer linha da mensagem do commit não pode ter mais de 100 caracteres! Assim fica mais fácil para ler no GitHub, Gitlab e outras ferramentas de git.

Tipo

Deve ser um dos seguintes:

  • build: alterações que afetam o sistema de build ou dependências externas
  • static: alterações no conteúdo de arquivos estáticos (dados .json, imagens, etc)
  • ci: alterações em nossos arquivos e scripts de configuração de CI
  • cd: alterações em nossos arquivos e scripts de configuração para CD
  • docs: somente alterações na documentação
  • feat: um novo recurso
  • fix: uma correção de bug da aplicação
  • perf: alteração de código que melhora o desempenho da aplicação e não altera a forma como o usuário utiliza a aplicação
  • refactor: alteração de código, que não corrige um bug e nem altera a forma como o usuário utiliza a aplicação
  • improve: alguma alteração de código que melhore o comportamento de um recurso
  • style: alterações que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula, etc)
  • chore: outras alterações que não alteram o código fonte ou testes
  • test: adicionando testes ausentes ou corrigindo testes existentes
  • revert: reverter para um commit anterior

Título

O título contém uma descrição sucinta da mudança:

  • use o imperativo, tempo presente: "mudança" não "mudou" nem "muda"
  • não capitalize a primeira letra
  • sem ponto (.) no final

Corpo

Um corpo de mensagem de commit mais longo PODE ser fornecido após o título, fornecendo informações contextuais adicionais sobre as alterações no código.

Configure a mensagem com um wrap de 50 caracteres

Use para explicar "o que" e "porque" foi realizado essa modificação, ao invez de "como".

O corpo DEVE começar depois de uma linha em branco após a descrição.

Rodapé

Um rodapé PODE ser fornecido depois de uma linha em branco após o corpo.

Caso exista um ticket no jira, criar um referência assim: issue TP-666 ou closes issue TP-666

Reverter um commit

Se o commit reverte um commit anterior, ele deve começar por revert:, seguido pelo cabeçalho do commit revertido.

No corpo, ele deve dizer: Isso reverte o commit <hash> ., onde o hash é o SHA do commit sendo revertido.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment