# semantic commit messages see how a minor change to your commit message style can ~~make you a better programmer~~ self generate {docs,changelog}, add context to the changeset, enable filtering (e.g. ignore styling or documentation changes), and liven up the commit history! format: `(): subject :emoji:` - `` - optional - some changes are global or difficult to assign to a single component - `` - optional - not all commits exist w/in the context of a jira ticket - `:emoji:` - required ;P ## brandingbrand example ``` feat(hat): JIRA-2313 add wobble :tophat: .--- .-- .-------- .--------- .------- | | | | | | | | | '-> emoji | | | | | | | '--> summary in present tense | | | | | '-----> jira ticket id | | | '-------> scope of the changeset | '--------> type: chore, docs, feat, fix, refactor, style, or test ``` - `feat(logging)`: **INFENG-583** add outbound sender header :outbox_tray: - `fix(tcptraceroute)`: **DEVOPS-5790** conditional guarding :rotating_light: - `docs(examples)`: **BBTIME-3** update :ledger: - `style(beautify)`: beautify single line json file :art: - `refactor(email)`: **DSGR-4843** recipient visibility :eyeglasses: - `test(examples)`: add webhook.json :arrow_right_hook: - `chore(version)`: bump package json :floppy_disk: ## scoped examples ``` feat(hat): add wobble .--- .-- .--------- | | | | | '--> summary in present tense | | | '--------> scope of changeset | '-------------> type: chore, docs, feat, fix, refactor, style, or test ``` - `feat(config)`: add required settings - `fix(tcptraceroute)`: conditional guarding :bug: - `docs(examples)`: add deployment links :chains: - `style(beautify)`: beautify single line json file :art: - `refactor(logging)`: update output formatting :bookmark_tabs: - `test(examples)`: add webhook.json :arrow_right_hook: - `chore(version)`: bump package json :floppy_disk: ## simple examples ``` feat: add hat wobble .--- .------------- | | | '-> summary in present tense. | '-------> type: chore, docs, feat, fix, refactor, style, or test. ``` - `feat`: new feature for the user, not a new feature for build script - `fix`: bug fix for the user, not a fix to a build script - `docs`: changes to the documentation - `style`: formatting, missing semi colons, etc; no production code change - `refactor`: refactoring production code, eg. renaming a variable - `test`: adding missing tests, refactoring tests; no production code change - `chore`: updating grunt tasks etc; no production code change ## hail mary use case: `last resort` format: `:lone_emoji:` - :wrench: ### cite - https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716 - https://seesparkbox.com/foundry/semantic_commit_messages - http://karma-runner.github.io/1.0/dev/git-commit-msg.html - https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md