Felipe M.

Padrões de Commits e Controle de Versão

Os Padrões de commits é uma especificação projetada para padronizar as mensagens de commit em repositórios Git. Seu principal objetivo é criar um histórico de commits mais legível e descritivo, facilitando a automação de processos como a geração de changelogs e versionamento semântico.

Imagem ilustrativa de um notebook com algumas palavras flutuantes sobre padrões de commits.O que é o Conventional Commits?

De acordo com a documentação do Conventional Commits, commits semânticos são uma convenção simples para ser utilizada nas mensagens de commit. Essa convenção define um conjunto de regras para criar um histórico de commit explícito, facilitando a criação de ferramentas automatizadas. Esses commits auxiliam você e sua equipe a entenderem de forma facilitada quais alterações foram realizadas no trecho de código que foi commitado.

O Conventional Commits define uma estrutura específica para mensagens de commit, seguindo o formato:

<tipo>[escopo opcional]: <descrição>

[corpo opcional]

[rodapé(s) opcional(is)]

Cada commit contém os seguintes elementos:

  • fix: usado para correções de bugs, associado ao nível PATCH do versionamento semântico.

  • feat: utilizado ao introduzir novas funcionalidades, relacionado ao MINOR do versionamento semântico.

  • docs: Commits do tipo docs indicam mudanças na documentação, como o arquivo README, sem alteração no código-fonte.

  • test: Commits do tipo test indicam modificações em testes, como a criação, alteração ou exclusão de testes unitários, sem mudança de código.

  • build: Commits do tipo build indicam modificações em arquivos de build e dependências.

  • perf: Commits do tipo perf indicam alterações de código relacionadas à performance.

  • style: Commits do tipo style indicam mudanças em formatação, como espaçamentos, ponto e vírgula e lint, sem alterar o código.

  • refactor: Commits do tipo refactor indicam refatorações que não alteram a funcionalidade do código, apenas sua estrutura interna.

  • chore: Commits do tipo chore indicam mudanças de manutenção, como a adição de pacotes no gitignore, sem alterar o código.

  • ci: Commits do tipo ci indicam mudanças em configurações de integração contínua (CI/CD).

  • raw: Commits do tipo raw indicam mudanças relacionadas a arquivos de configuração e dados brutos.

  • cleanup: Commits do tipo cleanup indicam a remoção de código comentado ou desnecessário para melhorar a legibilidade.

  • remove: Commits do tipo remove indicam a exclusão de arquivos, diretórios ou funcionalidades obsoletas.

Exemplos de algumas possíveis mensagens.

  • feat(lang): adiciona suporte a português brasileiro.

  • docs(readme): atualiza informações de instalação no README.

  • test(unit): adiciona testes unitários para o componente de login.

  • build(deps): atualiza dependências do projeto.

  • perf(algoritmo): otimiza a performance do algoritmo de ordenação.

Tipos de Commits e Emojis Sugeridos

O Conventional Commits também recomenda o uso de emojis para identificar visualmente o tipo de commit:

  • feat::sparkles: – Novo recurso.

  • fix: 🐛 :bug: – Correção de bug.

  • docs: 📚 :books: – Atualização de documentação.

  • style: 💄 :lipstick: – Estilização e formatação.

  • refactor: ♻️ :recycle: – Refatoração de código.

  • test: 🧪 :test_tube: – Adição ou modificação de testes.

  • perf::zap: – Melhorias de performance.

  • chore: 🔧 :wrench: – Tarefas e manutenção.

  • remove: 🗑️ :wastebasket: – Remoção de arquivos ou recursos.

  • cleanup: 🧹 :broom: – Limpeza de código.

Benefícios do Conventional Commits

Ao adotar os Padrões de commits traz diversos benefícios para projetos de software:

  • Automatização de Changelogs: Facilita a geração automática de changelogs baseados nas mensagens de commit.

  • Versionamento Semântico: Permite determinar automaticamente se a versão deve ser MAJOR, MINOR ou PATCH.

  • Comunicação Clara: Melhora a compreensão das mudanças para todos os membros da equipe e colaboradores externos.

  • Facilita Contribuições: Proporciona um histórico de commits mais organizado e descritivo.

Conclusão

Adotar o Conventional Commits em seus projetos melhora a clareza e a automação no controle de versão. Ele promove consistência nas mensagens de commit, facilitando a manutenção e o entendimento das mudanças no código ao longo do tempo. Considere implementar essa prática em seu fluxo de trabalho para obter benefícios a longo prazo.

Referencias:

https://github.com/iuricode/padroes-de-commits?tab=readme-ov-file

https://www.conventionalcommits.org/pt-br/v1.0.0/#especifica%c3%a7%c3%a3o

Powered by wisp

1/11/2025
Related Posts
Guia de Comandos Linux/Unix para Iniciantes

Guia de Comandos Linux/Unix para Iniciantes

Aprenda os comandos básicos de Linux e Unix, incluindo navegação, manipulação de arquivos, gerenciamento de processos e dicas para usuários de MacOS e Windows. Ideal para quem deseja dominar o terminal.

Read Full Story
Big O Notation: Dominando a Complexidade dos Algoritmos

Big O Notation: Dominando a Complexidade dos Algoritmos

Imagine dois entregadores: um pedala uma bicicleta em uma rua vazia, enquanto o outro dirige um caminhão em um trânsito caótico.

Read Full Story
Qual a diferença entre JDK, JRE e JVM

Qual a diferença entre JDK, JRE e JVM

O Java é uma das linguagens de programação mais populares e poderosas, em grande parte devido à sua capacidade de ser multi-plataforma. Mas, para quem está começando, entender as diferenças entre JDK, JRE e JVM pode ser uma grande confusão. Neste post, vamos explicar de forma clara e simples o que são essas siglas, qual o papel de cada componente e como elas trabalham juntas para permitir que o Java seja executado em diferentes sistemas operacionais com facilidade. Vamos explorar o processo básico de como o Java funciona, começando com a escrita do código-fonte até a execução final, além de esclarecer a hierarquia entre o JDK, JRE e JVM. Entenda por que o Java tem a capacidade única de rodar em qualquer lugar, e como cada um desses componentes contribui para tornar o desenvolvimento e execução de programas Java mais eficiente e flexível.

Read Full Story
© Felipe M. 2025