Seus commits farão sentido quando terminar de fazer essa leitura
Commit é a realização de um conjunto de mudanças provisórias ou permanentes, marcando o fim de uma ou mais alterações e registrando-a na linha do tempo. Basicamente uma parte da história de um projeto.
O registro de commits é chamado de log de commits.
Por esse motivo os padrões de log de commit são necessários e não se preocupe, trata-se de 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.
Essas regras auxiliarão você e sua equipe a entenderem de forma facilitada quais alterações foram realizadas no trecho de código que foi commitado.
Essa identificação ocorre por meio de uma palavra chave, uma classe ou abrangência e uma mensagem.
Veja um exemplo de log de commit:
$ git commit -m "style:[all] fix lint with eslint"
'style'
É a palavra chave que identifica se aquele commit realizado se trata de uma implementação, alteração de código, atualização de pacotes, documentação, alteração de visual, teste…
Aqui estão algumas palavras chave muito utilizadas:
- feat: Indica que seu trecho de código está incluindo um novo recurso;
- fix: Indica que seu trecho de código está solucionando um problema (bug fix);
- docs: Indica que houveram mudanças na documentação, como por exemplo no Readme do seu repositório. (Não inclui alterações em código);
- test: Utilizada quando são realizadas alterações em testes, seja criando, alterando ou excluindo testes unitários. (Não inclui alterações em código);
- build: Utilizada quando são realizadas modificações em arquivos de build e dependências;
- perf - Serve para identificar quaisquer alterações de código que estejam relacionadas a performance.
- style: - Indica que houveram alterações referentes a formatações de código, semicolons, trailing spaces, lint… (Não inclui alterações em código);
- refactor: Referem-se a mudanças devido a refatorações que não alterem sua funcionalidade, como por exemplo, uma alteração no formato como é processada determinada parte da tela, mas que manteve a mesma funcionalidade, ou melhorias de performance devido a um code review;
- chore: - Indica atualizações de tarefas de build, configurações de administrador, pacotes… como por exemplo adicionar um pacote no gitignore. (Não inclui alterações em código);
- ci: Indicam mudanças relacionadas a integração contínua ( continuous integration ).
'all'
É a classe ou abrangência. Note que nesse caso foi usada para mostrar a abrangência da alteração realizada podendo também ser usada para demarcar partes especificas do projeto.
'fix lint with eslint'
É a mensagem.
Recomendações: Use por padrão o Inglês, seja claro e objetivo na mensagem e use devidamente cada palavra chave de acordo a alteração realizada.
É isso, e valeu!