Git
Conventional Commits
É um pattern para mensagens de commits.
!type(?scope): !subject // ! att obrigatório
<?body> // ? att não obrigatório
<?footer>Subject
Escrever no imperativo. Pode parecer meio não intuitivo (porque o commit é algo que você já fez) mas na verdade deve-se pensar: "se eu aceitar esse commit, oque ele vai fazer quando aplicado".
Type
Qual a categoria de alteração/iteração está sendo feita.
test: indica qualquer tipo de criação ou alteração de códigos de teste.feat: incluindo um novo recursorefactor: refatorações que não alterem sua funcionalidadestyle: alterações referentes a formatações de código, semicolons, trailing spaces, lint...fix: solucionando um problemachore: mudanças no projeto que não afetem o sistema ou arquivos de testes. São mudanças de desenvolvimento. (Exemplo: Mudar regras do eslint, adicionar prettier, adicionar mais extensões de arquivos ao .gitignore)docs: mudanças na documentação do projeto.build: modificações em arquivos de build e dependências.perf: alterações de código que estejam relacionadas a performance.ci: mudanças relacionadas a integração contínuarevert: reversão de um commit anterior.
Scope
Mesmo o scope não sendo obrigatório, ele pode ser utilizado para contextualizar o commit e trazer menos responsabilidade para a subject, uma vez que dispondo do tipo de commit e o contexto que foi aplicado, a mensagem deve ser o mais breve e concisa possível. Além disso, no caso do scope é possível adicionarmos múltiplos valores, como por exemplo: Caso houvesse uma refatoração de código em um repositório com versões mobile, web e desktop. A qual afeta o contexto mobile e web, poderíamos escrever o commit da seguinte maneira:
git commit -m "refactor(web/mobile): change createUser() logsObservação: Os escopos devem ser separados com / , \ ou ,.
Body
- Explain what and why, not how
- Wrap at 72 characters
Footer
BREAKING CHANGE: <description>Closes #<issue>,Fixes #<issue>,Refs #<issue>