This is the semantics that I like.
Format: <type>=<scope1|scope2|...>: <subject>
<scope>
is optional
PF=index.js: add the super feature
^^ ^-------^ ^-------------------^
| | |
| | +-> Summary in present tense.
| +--> Scope
+-------> Type: PF, etc.
prod changes | dev changes | test changes | < scope of the commit |
---|---|---|---|
PF | DF | TF | feature < release of an important feature |
PW | DW | TW | write < writing some code |
PX | DX | TX | fix < bug fixes |
PD | DD | TD | documentation < change doc (markdown, etc), edit comments |
PA | DA | TA | architecture < create new empty files, folders |
PS | DS | TS | style < formatting, add spaces, etc |
PR | DR | TR | refactor < refactoring code, eg. renaming a variable |
PP | DP | TP | performance < code change that improves performance |