You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					117 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					117 lines
				
				3.0 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# husky
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								> Git hooks made easy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://www.npmjs.org/package/husky) [](https://travis-ci.org/typicode/husky) [](https://ci.appveyor.com/project/typicode/husky)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Husky can prevent bad `git commit`, `git push` and more 🐶 _woof!_
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Support
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If Husky is saving you time, please consider supporting its development on Patreon 🙏 thank you!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								  <a href="https://www.patreon.com/bePatron?c=784328">
							 | 
						||
| 
								 | 
							
								    <img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" width="160">
							 | 
						||
| 
								 | 
							
								  </a>
							 | 
						||
| 
								 | 
							
								</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Install
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm install husky --save-dev
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// package.json
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  "husky": {
							 | 
						||
| 
								 | 
							
								    "hooks": {
							 | 
						||
| 
								 | 
							
								      "pre-commit": "npm test",
							 | 
						||
| 
								 | 
							
								      "pre-push": "npm test",
							 | 
						||
| 
								 | 
							
								      "...": "..."
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								git commit -m 'Keep calm and commit'
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To go further, see the docs [here](https://github.com/typicode/husky/blob/master/DOCS.md).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Uninstall
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm uninstall husky
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Upgrading from 0.14
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Simply move your existing hooks to `husky.hooks` field and use raw Git hooks names. Also, if you're using the `GIT_PARAMS` env variable, rename it to `HUSKY_GIT_PARAMS`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```diff
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  "scripts": {
							 | 
						||
| 
								 | 
							
								-   "precommit": "npm test",
							 | 
						||
| 
								 | 
							
								-   "commitmsg": "commitlint -E GIT_PARAMS"
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								+ "husky": {
							 | 
						||
| 
								 | 
							
								+   "hooks": {
							 | 
						||
| 
								 | 
							
								+     "pre-commit": "npm test",
							 | 
						||
| 
								 | 
							
								+     "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
							 | 
						||
| 
								 | 
							
								+   }
							 | 
						||
| 
								 | 
							
								+ }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Alternatively, you can run the following command which will do the same automatically for you ;)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								./node_modules/.bin/husky-upgrade
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Starting with `1.0.0`, you can also configure hooks using `.huskyrc`, `.huskyrc.json` or `.huskyrc.js` file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// .huskyrc
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  "hooks": {
							 | 
						||
| 
								 | 
							
								    "pre-commit": "npm test"
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To view the full list of changes, please see the [CHANGELOG](https://github.com/typicode/husky/blob/master/CHANGELOG.md).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Features
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Keeps existing user hooks
							 | 
						||
| 
								 | 
							
								* Supports GUI Git clients
							 | 
						||
| 
								 | 
							
								* Supports all Git hooks (`pre-commit`, `pre-push`, ...)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Used by
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* [jQuery](https://github.com/jquery/jquery)
							 | 
						||
| 
								 | 
							
								* [babel](https://github.com/babel/babel)
							 | 
						||
| 
								 | 
							
								* [create-react-app](https://github.com/facebookincubator/create-react-app)
							 | 
						||
| 
								 | 
							
								* [Next.js](https://github.com/zeit/next.js)
							 | 
						||
| 
								 | 
							
								* [Hyper](https://github.com/zeit/hyper)
							 | 
						||
| 
								 | 
							
								* [Kibana](https://github.com/elastic/kibana)
							 | 
						||
| 
								 | 
							
								* [JSON Server](https://github.com/typicode/json-server)
							 | 
						||
| 
								 | 
							
								* [Hotel](https://github.com/typicode/hotel)
							 | 
						||
| 
								 | 
							
								* ... and 28k+ [other awesome repos](https://libraries.io/npm/husky/dependent-repositories)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## See also
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* [pkg-ok](https://github.com/typicode/pkg-ok) - Prevents publishing a module with bad paths or incorrect line endings
							 | 
						||
| 
								 | 
							
								* [please-upgrade-node](https://github.com/typicode/please-upgrade-node) - Show a message to upgrade Node instead of a stacktrace in your CLIs
							 | 
						||
| 
								 | 
							
								* [pinst](https://github.com/typicode/pinst) - dev only postinstall hook
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MIT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Patreon](https://www.patreon.com/typicode) - [Supporters](https://thanks.typicode.com) ✨
							 |