DEV Community

Fernanda Sayuri
Fernanda Sayuri

Posted on

Guia prático: Padrão de Commit

Padrão de commit

Seja trabalhando sozinho ou em um time com vários devs ora ou outra precisamos consultar commits anteriores. No começo eu acaba escrevendo meus commits como: "Correção”, “Melhorias” e  “Update”, pois não sabia que existia uma boa prática pra isso. Assim, sempre que precisava buscar alguma alteração antiga era muito difícil e confuso... Até que descobrir o Conventional Commits.

1. O que é Conventional Commits?

Conventional commits trata-se de um padrão de escrita de mensagens de commit para facilitar a comunicação entre desenvolvedores e ajudar a manter o histórico do código organizado.

O padrão é bem simples:
<tipo>(escopo): <descrição>

2. Tipos

Os tipos é obrigatório e são sobre o que se trata o commit.
Só pode ser usado um por commit, caso esteja em dúvida sobre qual usar, provavelmente trata-se de uma grande mudança e é possível separar o código em dois ou mais commits.

Os tipos mais comuns são:

  • feat: novo recurso
  • fix: solucionando um problema
  • docs: mudanças na documentação
  • test: alterações em testes
  • build: alterações em arquivos de build e dependências
  • perf: alterações relacionadas à performance
  • style: formatação de código e lint
  • refactor: refatoração de código que não altera a funcionalidade
  • chore: atualizações de tarefas de build, configurações de administrador e pacotes
  • cleanup: limpeza no código, legibilidade
  • remove: exclusão de código/arquivos que não são mais utilizados
  • revert: rollback para commit específico

É possível adicionar um ! opcional na para chamar atenção a quebra de compatibilidade.
Exemplo:

feat!: descontinuar uso do componente card
Enter fullscreen mode Exit fullscreen mode

3. Escopo

Este é opcional e trata-se sobre qual é o escopo específico abordado, como um componente, fluxo ou configuração.

4. Descrição

Para escrever a descrição podemos pensar: "se eu aplicar esse commit ele vai..." ou "O que essa alteração faz?" e completar a frase.

  • Não é necessário colocar o porque do commit (motivação), mas sim o que de fato ele faz.
  • É obrigatório escrever em inglês? Não, isso deve ser alinhado com outros devs que irão trabalhar no mesmo repositório, mas é sempre uma boa prática utilizar inglês para documentações.

5. Emojis

É possível utilizar um emoji no início da mensagem de commit representando sobre o que ele se trata.
É opicional e tem objetivo apenas visual para organização.

Os principais tipos são:

Tipo de commit Emojis
Commit inicial 🎉 :tada:
Tag de versão 🔖 :bookmark:
Novo recurso ✨ :sparkles:
Lista de ideias (tasks) 🔜 :soon:
Bugfix 🐛 :bug:
Documentação 📚 :books:
Testes 🧪 :test_tube:
Acessibilidade ♿ :wheelchair:
Adicionando um teste ✅ :white_check_mark:
Teste de aprovação ✔️ :heavy_check_mark:
Acessibilidade ♿ :wheelchair:
Texto 📝 :pencil:
Package.json em JS 📦 :package:
Em progresso 🚧 :construction:
Arquivos de configuração 🔧 :wrench:
Removendo uma dependência ➖ :heavy_minus_sign:
Adicionando uma dependência ➕ :heavy_plus_sign:
Revertendo mudanças 💥 :boom:
Alterações de revisão de código 👌 :ok_hand:
Refatoração ♻️ :recycle:
Mover/Renomear 🚚 :truck:
Acessibilidade  ♿ ♿
Deploy 🚀 :rocket:
Segurança 🔒️ :lock:

6. Exemplos:💻

Comando Git Resultado no GitHub
git commit -m ":tada: Commit inicial" 🎉 Commit inicial
git commit -m ":books: docs: Atualização do README" 📚 docs: Atualização do README
git commit -m ":bug: fix(modal): Loop infinito na linha 50" 🐛 fix: Loop infinito na linha 50
git commit -m ":sparkles: feat: Página de login" ✨ feat: Página de login
git commit -m ":zap: perf: Melhoria no tempo de resposta" ⚡ perf: Melhoria no tempo de resposta
git commit -m ":boom: fix: Revertendo mudanças ineficientes" 💥 fix: Revertendo mudanças ineficientes
git commit -m ":lipstick: feat!: Estilização CSS do formulário" 💄 feat: Estilização CSS do formulário
git commit -m ":test_tube: test: Criando novo teste" 🧪 test: Criando novo teste
git commit -m ":bulb: docs: Comentários sobre a função LoremIpsum( )" 💡 docs: Comentários sobre a função LoremIpsum( )
git commit -m ":broom: cleanup: Eliminando blocos de código comentados e variáveis não utilizadas na função de validação de formulário" 🧹 cleanup: Eliminando blocos de código comentados e variáveis não utilizadas na função de validação de formulário
git commit -m ":wastebasket: remove: Removendo arquivos não utilizados do projeto para manter a organização e atualização contínua" 🗑️ remove: Removendo arquivos não utilizados do projeto para manter a organização e atualização contínua

Conclusão

Padronizar mensagens de commit pode parecer um detalhe pequeno, mas faz toda a diferença na organização e manutenção de um projeto. Usando Conventional Commits (com ou sem emojis), o histórico do repositório se torna mais claro, facilitando revisões e colaboração em equipe.

Se você ainda não segue um padrão, experimente adotar essa prática e veja como ela pode melhorar seu fluxo de trabalho!

💖 Obrigado por ler, escrevi este artigo no intuito de ajudar os Devs e também registrar mais um dos meus aprendizados.
Sinta-se à vontade para interagir e comentar.

Top comments (0)