Padrões de Commits

Padrões de Commits

Aprenda a escrever commits semânticos e profissionais

Padrões de Commits

Segundo a documentação de Conventional Commits, os commits semânticos são uma convenção simples para ser utilizada nas mensagens de commit. Esta convenção define um conjunto de regras para criar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas. Estes commits ajudarão você e sua equipe a entender mais facilmente quais mudanças foram feitas no trecho de código que foi commitado. Esta identificação ocorre por meio de uma palavra e emoji que identifica se aquele commit realizado se trata de uma mudança de código, atualização de pacotes, documentação, mudança visual, teste...

Tipos de Commits

Os commits semânticos possuem os elementos estruturais abaixo (tipos), que informam a intenção do seu commit ao usuário do seu código.

feat

Indica que seu trecho de código está incluindo uma nova funcionalidade (relaciona-se ao MINOR no versionamento semântico).

git commit -m ":sparkles: feat: adicionar autenticação de usuário"
🐛

fix

Indica que seu trecho de código commitado está solucionando um problema (correção de bug), relaciona-se ao PATCH no versionamento semântico.

git commit -m ":bug: fix: corrigir loop infinito na validação"
📚

docs

Indica que houve mudanças na documentação, como no README do seu repositório (não inclui mudanças de código).

git commit -m ":books: docs: atualizar README com instruções"
💄

style

Indica que houve mudanças relacionadas à formatação de código, ponto e vírgula, espaços em branco, lint (não inclui mudanças de código).

git commit -m ":lipstick: style: corrigir formatação do código"
♻️

refactor

Refere-se a mudanças devido a refatoração que não alteram a funcionalidade, como melhorias de performance devido a code review.

git commit -m ":recycle: refactor: otimizar algoritmo de busca"

perf

Serve para identificar qualquer mudança de código relacionada à performance.

git commit -m ":zap: perf: melhorar tempo de carregamento"
🧪

test

Usado quando mudanças são feitas em testes, seja criando, modificando ou deletando testes unitários (não inclui mudanças de código).

git commit -m ":test_tube: test: adicionar testes unitários"
🔨

build

Usado quando modificações são feitas em arquivos de build e dependências.

git commit -m ":package: build: atualizar dependências"
🧱

ci

Indica mudanças relacionadas à integração contínua.

git commit -m ":bricks: ci: configurar pipeline de deploy"
🔧

chore

Indica atualizações de tarefas de build, configurações de administrador, pacotes (não inclui mudanças de código).

git commit -m ":wrench: chore: atualizar .gitignore"
🗃️

raw

Indica mudanças relacionadas a arquivos de configuração ou dados brutos.

git commit -m ":card_file_box: raw: dados brutos do projeto"
🧹

cleanup

Indica limpeza de código, remoção de comentários desnecessários e otimizações gerais.

git commit -m ":broom: cleanup: remover código não utilizado"
🗑️

remove

Indica remoção de arquivos, funcionalidades ou código que não são mais necessários.

git commit -m ":wastebasket: remove: deletar arquivos obsoletos"

Padrões de Emojis

Tipo do commitEmojiPalavra-chave
Acessibilidade:wheelchair:
Adicionando um teste:white_check_mark:
Atualizando versão de submódulo⬆️:arrow_up:
Rebaixando versão de submódulo⬇️:arrow_down:
Adicionando uma dependência:heavy_plus_sign:
Mudanças de revisão de código👌:ok_hand:
Animações e transições💫:dizzy:
Correção de bug🐛:bug:
Comentários💡:bulb:
Commit inicial🎉:tada:
Configuração🔧:wrench:
Deploy🚀:rocket:
Documentação📚:books:
Em progresso🚧:construction:
Estilização de UI💄:lipstick:
Infraestrutura🧱:bricks:
Lista de tarefas (tasks)🔜:soon:
Mover/Renomear🚚:truck:
Nova funcionalidade:sparkles:
Package.json em JS📦:package:
Performance:zap:
Refatoração♻️:recycle:
Limpeza de código🧹:broom:
Removendo um arquivo🗑️:wastebasket:
Removendo uma dependência:heavy_minus_sign:
Responsividade📱:iphone:
Revertendo mudanças💥:boom:
Segurança🔒:lock:
SEO🔍:mag:
Tag de versão🔖:bookmark:
Teste de aprovação✔️:heavy_check_mark:
Testes🧪:test_tube:
Texto📝:pencil:
Tipagem🏷️:label:
Tratamento de erro🥅:goal_net:
Dados🗃️:card_file_box:

Comandos Git Principais

Clonar Repositório

Clona um repositório remoto existente do GitHub para seu ambiente local.

git clone url-do-repositorio-no-github

Inicializar Repositório

Inicializa um novo repositório Git no diretório atual.

git init

Adicionar Arquivos

Adiciona todos os arquivos e mudanças no diretório atual para a área de staging.

git add .

Fazer Commit

Registra as mudanças adicionadas à área de staging com uma mensagem descritiva.

git commit -m "mensagem do commit"

Renomear Branch

Renomeia a branch atual (master) para main. O -M é usado para forçar o renomeamento.

git branch -M main

Adicionar Repositório Remoto

Adiciona um repositório remoto chamado origin ao repositório local.

git remote add origin https://github.com/usuario/nome-do-repositorio.git

Enviar para o Repositório

Envia commits da branch local para o repositório remoto.

git push -u origin main

Atualizar do Repositório

Atualiza a branch local com mudanças do repositório remoto.

git pull origin main

Conectar Repositório Local

Quando você já tem um repositório local e quer conectá-lo a um repositório remoto no GitHub.

git remote add origin git@github.com:usuario/projeto.git
git branch -M main
git push -u origin main

Buscar Atualizações

Busca todas as atualizações do repositório remoto sem integrá-las à branch atual.

git fetch

Push Forçado Seguro

Forma mais segura de forçar o envio de mudanças locais para o repositório remoto.

git push --force-with-lease

Reverter Commit

Cria um novo commit que desfaz as mudanças feitas pelo commit especificado.

git revert id_do_commit_que_vai_ser_revertido

Resetar Commit

Reseta o repositório para o estado do commit especificado, deletando todas as mudanças subsequentes.

git reset --hard id_do_commit_anterior_ao_que_vai_ser_apagado

Alterar Mensagem do Commit

Altera a mensagem do último commit.

git commit --amend -m "mensagem_reescrita"

Cherry Pick

Usado para pegar um commit específico de outra branch.

git cherry-pick HASH_DO_COMMIT

Trocar Branch

Troca para uma branch diferente no repositório local.

git switch <branch>

Glossário

fork

Cópia de um repositório para sua própria conta do GitHub.

issues

Ferramenta usada para gerenciar tarefas e correções de bugs.

pull request

Mecanismo usado para enviar mudanças propostas ao repositório original.

gist

Ferramenta para compartilhar trechos de código.

💡Dicas Importantes

  • Use mensagens claras e descritivas que expliquem o que foi mudado
  • Mantenha commits pequenos e focados em uma única funcionalidade
  • Use o tipo correto de commit para facilitar a navegação no histórico
  • Sempre teste suas mudanças antes de fazer commit