Git hooks made easy
Husky can prevent bad commit, push and more 🐶 woof!
npm install husky --save-dev
// Edit package.json
{
"scripts": {
"precommit": "npm test",
"prepush": "npm test",
"...": "..."
}
}
git commit -m "Keep calm and commit"
Existing hooks aren't replaced and you can use any Git hook.
If you're migrating from ghooks
, simply run npm uninstall ghooks --save-dev && npm install husky --save-dev
and edit package.json
. Husky will automatically migrate ghooks
hooks.
- jQuery
- Next.js
- Hyper
- Paper.js
- Kibana
- JSON Server
- Hotel
- ... and more than 2000+ other awesome projects.
npm uninstall husky --save-dev
If you need to debug hooks, simply use npm run <script-name>
. For example:
npm run precommit
If you've installed Node using the standard installer, nvm or homebrew, git hooks will be executed even in GUI applications.
In the case of nvm
, husky will try to use the default
installed version or use the project .nvmrc
.
Git params can be found in GIT_PARAMS
environment variable.
By default, husky will run scripts using --silent
to make the output more readable. If you want to override this, simply pass a different log level to your scripts:
"precommit": "npm run some-script -q"
-q/--quiet
is equivalent to --loglevel warn
which is npm default log level.
Yes
Yes
For Yarn, you currently need to pass --force
to be sure that hooks are going to be installed (yarn add husky --dev --force
). You can also manually install hooks using node node_modules/husky/bin/install
.
MIT - Typicode 🌵