O Convetional Commits é uma convenção simples de mensagens de commit que segue um conjunto de regras e ajuda os projetos a terem um histórico de commit explícito e bem estruturado
Utilizar estes commits facilita o entendimento de onde está se concentrando as horas do projeto e a entrada de novos Devs no projeto. Adotando essa convenção, apesar de gastar um pouco mais tempo no código, ajuda a deixar tudo mais organizado e facil de ser entendido.
O commit semântico utiliza algumas regras estruturais (listadas abaixo) para facilitar os utilizadores do seu código identificarem as alterações feitas nele.
-
test- Commits do tipo test indicam qualquer tipo de criação ou alteração de códigos de teste -
feat- Commits do tipo feat indicam o desenvolvimento de uma nova feature ao projeto. -
refactor- Commits do tipo refactor são utilizados quando ocorre uma refatoração de código que não tenha impacto na lógica/regras de negócio do sistema. -
style- Commits do tipo style são utilizados quando há mudanças de formatação e estilo do código que não alteram o sistema de forma nenhuma. -
fix- Commits do tipo fix são utilizados quando há correção de erros que estão gerando bugs no sistema. -
chore- Commits do tipo chore indicam mudanças no projeto que não afetam o sistema ou arquivos de testes. São mudanças de desenvolvimento. -
docs- Commits do tipo docs são utilizados quando ocorrem mudanças na documentação da API, mudanças no README, etc. -
build- Commits do tipo build indicam mudanças que afetam o processo de build do projeto ou dependências externas. -
perf- Commits do tipo perf indicam uma alteração que melhorou a performance do sistema. -
ci- Commits do tipo ci é utilizado para mudanças nos arquivos de configuração de CI. -
revert- Commits do tipo revert indicam uma reversão do commit anterior.
Exemplo de uso dos tipos de commit:
git commit -m "style: Adiciona formatação do index"- Utilize o modo imperativo na mensagem do commit, como "Adiciona feature" ao invés de "Adicionando feature" ou "Adicionada feature";
- Na primeira linha do seu commit tente usar no máximo 4 palavras;
- Descreva com mais detalhes as alterações feitas no código utilizando o corpo do commit;
- Utilize um emoji no início do commit para ajudar a identifica-lo;
- Faça commits apenas quando as mudanças forem relevantes. Isto é, não faça um commit toda vez que mudar uma linha no código a menos que seja algo muito especifico e significativo por si só. O melhor é, se ainda estiver desenvolvendo, espere até que tenha um conjunto importante de alterações para fazer um commit;
git commit -m "Descrição (obrigatório)
> [Linha em branco]
> Corpo do Commit (opcional)
> [Linha em branco]
> Footer do commit (opcional)"Uma outra forma de identificar seus commits é por meio de emojis. Apesar de não serem uma forma oficial de padronizar seus commits, emojis podem ser muito uteis para indicar de uma forma rápida e bonita as alterações feitas em seu projeto.
Abaixo segue uma lista com emojis e pra que situações eles podem ser utilizados.
| Tipo de commit | Emojis |
|---|---|
| Commit inicial | 🎉 :tada: |
| Atualização de Segurança | 🔒 :lock: |
| Nova feature | 🚀 :rocket: |
| Mudanças na formatação/estilo | 🎨 :art: |
| Correção de bugs | 🐛 :bug: |
| Documentação | 📝 :pencil: |
| Testes | 🧪 :test_tube: |
| Melhorias de Performance | 🎚️ :level_slider: |
| Acessibilidade | ♿ :wheelchair: |
| Apagando arquivos | 🗑️ :wastebasket: |
| Em desenvolvimento | 🚧 :construction: |
| Arquivos de configuração | 🧰 :toolbox: |
| Alterações de revisão de código | 👌 :ok_hand: |
| Nova versão | 🎁 :gift: |
| Arquivos de pacote | 📦 :package: |
| Mover/Renomear | 🚚 :truck: |
git commit -m ":rocket: Adiciona as classes de acesso ao banco de dados
>
>Adiciona o arquivo Connection.php com a classe para acesso
>ao banco de dados MySQL
>
>Correção do Issue #12"git commit -m ":rocket: Adiciona as classes de acesso ao banco de dados" -m "Adiciona o arquivo Connection.php com a classe para acesso
ao banco de dados MySQL" -m "Correção do Issue #12"Inspirado no repositório padroes-de-commit de iuricode
Clique aqui para acessá-lo.
