-
git init(if project is not git repository).
-
install node:
brew install node
-
add node_modules and other conventional commit files and folders to .gitignore:
echo " ## conventional commit related files node_modules/ .husky/ commitlint.config.js package-lock.json package.json ">> .gitignore
-
install commitlint:
npm install @commitlint/{cli,config-conventional} --save-dev
-
export commitlint/config-conventional:
echo " module.exports = { extends: ['@commitlint/config-conventional'], }; " >> commitlint.config.js
Husky v7 won't use the hooks configuration from package.json or .huskyrc.json file.
So you should use files like pre-commit, commit-msg, prepare-commit-msg to use the hooks.
see the answer in stackoverflow.
-
install husky:
npm install husky --save-dev
-
enable git hooks:
npx husky install
-
make git commit can use git cz hook:
npx husky add .husky/prepare-commit-msg "exec < /dev/tty && git cz --hook || true"
-
add commitlint in husky with commit-msg:
npx husky add .husky/commit-msg "npx --no-install commitlint --edit" echo "$(cat .husky/commit-msg) \"\$1\"" >> .husky/commit-msg
-
install commitizen:
npm install commitizen --save-dev
-
initialize your project to use the cz-conventional-changelog adapter by typing:
commitizen init cz-conventional-changelog --save-dev --save-exact
-
finally, use
git commit
orcz
orcz commit
orgit cz
orgit-dz
to commit withconvention
.