## Git Commit Message Convention > This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). #### TL;DR: Messages must match the following regex: ```js ;/^(revert: )?(feat|fix|docs|style|refactor|test|ci|chore)(\(.+\))?: .{1,70}/ ``` #### Types - `feat` - new functionality. - `fix` - patching a bug. - `docs` - documentation and comments. - `style` - style changes only (not necessarily in css). - `refactor` - reworking internals without impacting project interface. - `test` - tests and demo. - `ci` - deploy and continuous integration. - `chore` - no significant code changes: code formatting, version changes, tool updates, minor refactorings. #### Examples Appears under "Features" header, `compiler` subheader: ``` feat(compiler): add 'comments' option ``` Appears under "Bug Fixes" header, `v-model` subheader, with a link to issue #28: ``` fix(v-model): handle events on blur close #28 ``` Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: ``` feat(core): improve vdom diffing by removing 'foo' option BREAKING CHANGE: The 'foo' option has been removed. ``` The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. ``` revert: feat(compiler): add 'comments' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. ``` ### Full Message Format A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: ``` ():