pres:gerti:devops:informacoes:nomes_commits

Essa é uma revisão anterior do documento!


Adotamos o padrão Conventional Commits para nomear os commits de nossos projetos.

  • Automatizar o versionamento de nossos projetos
  • Automatizar a geração do Changelog
  • Tornar o histórico de commits mais legível
  • Padronizar a comunicação entre a equipe

É importante que usemos esse padrão pois o Job de Versionamento das Pipelines de CI/CD lê os nomes dos commits, e com base neles, gera automaticamente a próxima versão, usando o padrão de Versionamento Semântico

  1. Digamos que você recebeu a tarefa de implementar um feature em seu projeto.
  2. Você implementa, testa o feature em sua máquina, e agora está pronto para commitar.
  3. Como sua alteração é um feature, seu commit se chama: feat(login): implementa "remember me" na página de login #39074, e faz push para o repositório.
  4. No Gitlab, o Job de Versionamento lê o seu commit. Ele entende que é um feat, e cria uma tag no seu commit. Digamos que a versão anterior era 1.12.2, agora a versão é 1.13.0.
  5. Após isso, o Job de Versionamento também é gerado um changelog com as alterações.

Esta é a sintaxe dos commits que o Job de Versionamento está configurado para entender

<tipo>(<escopo opcional>): <descrição> [#<task redmine>]
  • <tipo>: Obrigatório. Refere-se ao tipo da alteração: se ele corrige um bug é um fix, se adiciona um feature, é um feat. Veja: Quais Tipos de Commits existem?
  • <escopo opcional>: Opcional. Descreve qual módulo do sistema foi alterado
  • <descrição>: Descrição do o que o seu commit faz. Inicie sempre com verbos no presente do indicativo, ex.: corrige, altera, implementa, refatora, adiciona.

Para o campo <tipo>, há as seguintes opções:

Tipo Descrição Versão Roda a pipeline?
build Mudanças que afetam o sistema de build (Dockerfile) ou dependências externas (requirements.txt)Não altera Sim
ci Alterações na pipeline de CI/CD Não altera Sim
docs Alterações na Documentação Não altera Não
feat Um feature novo (alterações que adicionam funcionalidade) Aumenta a MinorSim
fix Uma correção de bug (alteração que corrige funcionalidade) Aumenta o PatchSim
perf Uma mudança no código que melhora a performance Aumenta a MinorSim
refactorUma mudança de código que nem corrige bugs, nem adiciona features. Apenas Refatoração. Não altera Sim
test Adição de novos testes ou correção de testes existentes Não altera Sim
Dica: Commits que começam docs: não disparam a pipeline. Caso não queria disparar a pipeline, pode usá-lo.

Veja como exemplo um histórico de commits de um projeto fictício para entender como que

Versão AtualNome do Commit Nova VersãoTipo de Alteração
1.2.4 fix: Corrige a formatação do parser markdown 1.2.5 Altera a versão de Patch
1.2.5 feat: Adiciona comando de pull para baixar novas páginas 1.3.0 Altera a versão Minor
1.3.0 docs(comandos): Cria sessão explicando como usar o comando de pull1.3.0 Versão se mantem igual

Por convenção, inicie a Descrição do commit com verbos no presente do indicativo. A descrição deve indicar o que o commit faz. Exemplos:

  • fix: corrige a formatação do parser markdown
  • feat: adiciona comando de pull para baixar novas páginas

A intenção é facilitar a leitura do histórico de commits, e dos changelogs.

Mais informações

Para informações completas da sintaxe dos commits e versionamento semântico: Versionamento Semântico e guia de commits do Angular.

  • pres/gerti/devops/informacoes/nomes_commits.1776629320.txt.gz
  • Última modificação: 19/04/2026 20:08
  • por lvinicius