Padrões e Nomenclaturas no Git: Um Guia Prático

Guilherme Gomes - Sep 22 - - Dev Community

Quando falamos sobre padrões e nomenclaturas no Git, é um ponto importante, embora não seja essencial. No entanto, seguir boas práticas, como manter um padrão consistente e utilizar nomes claros e descritivos nas branches, pode facilitar bastante o desenvolvimento em equipe e a manutenção do projeto.

Neste artigo, quero compartilhar um guia prático de versionamento e nomenclaturas que adotei e que tem sido útil no meu dia-a-dia!


Nomenclaturas para Commits

O commit semântico possui os seguintes elementos estruturais, que informam a intenção do seu commit:

feat: Indica que seu código está incluindo um novo recurso.

feat: adicionar funcionalidade de login com Google
Enter fullscreen mode Exit fullscreen mode

fix: Indica que seu commit está solucionando um problema.

fix: corrigir erro 500 na página de perfil`
Enter fullscreen mode Exit fullscreen mode

docs: Indica mudanças na documentação, como no README do seu repositório.

docs: atualizar instruções de instalação
Enter fullscreen mode Exit fullscreen mode

test: Utilizado quando realizamos alterações em testes, seja criando, alterando ou excluindo testes unitários.

test: adicionar testes para a função de autenticação
Enter fullscreen mode Exit fullscreen mode

build:Usado para modificações em arquivos de build e dependências.

build: atualizar dependências no package.json
Enter fullscreen mode Exit fullscreen mode

perf: Identifica alterações de código relacionadas à performance.

perf: otimizar consulta ao banco de dados
Enter fullscreen mode Exit fullscreen mode

style: Para alterações relacionadas a aspectos visuais ou de formatação do código.

style: corrigir formatação do código
Enter fullscreen mode Exit fullscreen mode

refactor: Para melhorias na qualidade interna do código, sem alterar sua funcionalidade.

refactor: simplificar a lógica de validação
Enter fullscreen mode Exit fullscreen mode

chore: Indica atualizações de tarefas de build, configurações de administrador, pacotes, etc.

chore: adicionar arquivo .gitignore
Enter fullscreen mode Exit fullscreen mode

remove: Indica a exclusão de arquivos, diretórios ou funcionalidades obsoletas ou não utilizadas.

remove: remover código não utilizado da API
Enter fullscreen mode Exit fullscreen mode

Nomenclaturas de Branch

Branch main

Esta branch contém a versão atual do software em produção. Ela está vinculada a uma pipeline que, a cada push, implementa automaticamente uma nova versão em produção.

Branch dev

Aqui se concentra o maior fluxo de trabalho e colaboração da equipe. As alterações feitas aqui provavelmente farão parte da próxima versão de lançamento.

Branch release

Esta branch é usada para preparar o lançamento de uma nova versão, contendo as funcionalidades desenvolvidas que serão implementadas em produção. O nome da branch geralmente segue o formato: release/v2.0.0.

Branch feature

Uma feature branch identifica o desenvolvimento de uma funcionalidade específica, como por exemplo: feature/nova-funcionalidade. Ela é uma cópia da branch dev, e várias feature branches podem existir simultaneamente, cada uma dedicada a uma funcionalidade diferente. Após a conclusão do desenvolvimento, a branch é finalizada e o merge é feito com a branch dev.

Branch hotfix

A hotfix branch é usada para corrigir bugs urgentes que não podem esperar pela próxima versão. Ela é uma cópia da branch main e segue o formato hotfix/v2.0.0-corrigir-falha-login. Após a correção, o merge é feito tanto na branch main quanto na dev para manter os repositórios atualizados.

Branch bugfix

A bugfix é usada para corrigir bugs de baixa urgência. Ela é uma cópia da branch dev e segue o formato bugfix/ajustar-estilo-pagina-inicial. Após a correção, o merge é feito na branch dev, e a correção será incluída na próxima release.


Seguir essas nomenclaturas e padrões não apenas melhora a organização do seu repositório, mas também facilita a colaboração e o entendimento das mudanças feitas ao longo do tempo. Espero que este guia prático ajude você!


. . . . .