Awesome
cz-conventional-commit
commitizen adapter following the conventional-changelog format, with emojis and additionnal commit types (aliases).
Install as a global utility
npm install --global commitizen @metahub/cz-conventional-commit
Create a .czrc file in your home directory, with the following content:
{
"path": "@metahub/cz-conventional-commit",
"cz-conventional-commit": {
"maxSubjectLength": 72,
"bodyLineLength": 100
}
}
Now cd into any git repository and use git cz
instead of git commit
and you will find the commitizen prompt.
See commitizen documentation for more informations.
Making your repo Commitizen-friendly
npm install --save-dev commitizen @metahub/cz-conventional-commit
./node_modules/.bin/commitizen init @metahub/cz-conventional-commit --save-dev
You can customize cz-conventional-commit in package.json
:
...
"config": {
"commitizen": {
"path": "@metahub/cz-conventional-commit",
"cz-conventional-commit": {
"maxSubjectLength": 72,
"bodyLineLength": 100,
"emoji": true
}
}
}
...
See commitizen documentation for more informations.
Options
Option | Description | Default |
---|---|---|
maxSubjectLength | Length at which to truncate the commit head (head includes type, scope, subject and emoji) | 72 |
bodyLineLength | Length at which to wrap body lines | 100 |
emoji | To add and emoji at the end of the commit message | false |
Commit types
Commit Type | Title | Description | Emoji |
---|---|---|---|
feat | Features | A new feature | ✨ |
fix | Bug Fixes | A bug Fix | 🐛 |
docs | Documentation | Documentation only changes | 📚 |
style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | 💎 |
refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature | 📦 |
perf | Performance Improvements | A code change that improves performance | 🚀 |
test | Tests | Adding missing tests or correcting existing tests | 🚨 |
build | Builds | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) | 🛠 |
ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) | ⚙️ |
chore | Chores | Other changes that don't modify src or test files | ♻️ |
revert | Reverts | Reverts a previous commit | 🗑 |
Commit aliases
Aliases are additionnal commit types that will be formatted to follow AngularJS Commit Message Conventions and automatically set some fields.
For example when choosing initial
, cz-conventional-commit
will automatically set:
- the standard type to
feat
- the
scope
to empty - the
subject
to 'Initial commit 🎉' - the
issues
to empty - the
breaking
to empty
The commit message will be feat: Initial commit 🎉
.
Commit Type | Type | Scope (default) | Subject (default) | Emoji |
---|---|---|---|---|
initial | feat | empty | Initial commit | 🎉 |
dependencies | fix | package | - | ⏫ |
peerDependencies | fix | package | - | ⬆️ |
devDependencies | chore | package | - | 🔼 |
metadata | fix | package | - | 📦 |
Related
- conventional-changelog-metahub - List of conventional commit types and aliases for this module