Skip to content

Instantly share code, notes, and snippets.

@diegorondao
Last active March 2, 2023 13:24
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 diegorondao/e8de4b29f7a4e2dbb2db9b10302f47b0 to your computer and use it in GitHub Desktop.
Save diegorondao/e8de4b29f7a4e2dbb2db9b10302f47b0 to your computer and use it in GitHub Desktop.
Guia para mensagens de commits

Guia para mensagens de commits

Formato da mensagem

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]

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
  • perf: uma alteração de código que melhora o desempenho
  • refactor: uma alteração de código que não corrige um bug nem adiciona um recurso
  • 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)
  • 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 80 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.

Exemplos

Mensagem de commit com descrição e modificação que quebra a compatibilidade no corpo

feat: permitir que o objeto de configuração fornecido estenda outras configurações

BREAKING CHANGE: a chave `extends`, no arquivo de configuração, agora é utilizada
para estender outro arquivo de configuração

Mensagem de commit com ! opcional para chamar a atenção para quebra a compatibilidade

chore!: remove Node 6 da matriz de testes

BREAKING CHANGE: removendo Node 6 que atinge o final de vida em Abril

Mensagem de commit sem corpo

docs: ortografia correta de CHANGELOG

Mensagem de commit com escopo

feat(lang): adiciona tradução para português brasileiro

Mensagem de commit de uma correção utilizando número de ticket (opcional)

fix: corrige pequenos erros de digitação no código

veja o ticket para detalhes sobre os erros de digitação corrigidos

closes issue #12

Porquê?

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment