Format: <type>(<scope>): <subject>
<scope> is optional
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: tech, docs, feat, fix, text, ref, test.
More Examples:
feat: new feature for the user, not a new feature for build scriptfix: bug fix for the business logic, not a fix to a build scriptref: refactoring of business logic or removing a featuretext: text formatting, reword, etctech: technical code changes, eg. renaming a variable, update dependency version, etc, no business logic changedocs: changes to the documentationtest: adding missing tests, refactoring tests; no business logic code change
If commit introduces breaking change, it should be specified in square parents in the end of commit message eg
fix: only admins can delete users [breaking]
Semantically docs, text and test should never introduce breaking changes
Reference: https://www.conventionalcommits.org