An open API service indexing awesome lists of open source software.

https://github.com/brikcss/git-hooks

Useful git hooks to make developers' lives easier. Includes a pre-commit linter, a commit message branch stamper, and a pre-push stage checker (all optional).
https://github.com/brikcss/git-hooks

git-hooks husky prettier standard-js stylelint

Last synced: 2 months ago
JSON representation

Useful git hooks to make developers' lives easier. Includes a pre-commit linter, a commit message branch stamper, and a pre-push stage checker (all optional).

Awesome Lists containing this project

README

        

# Git Hooks

> Set of useful Git hooks to make developer's lives easier.



NPM version

NPM downloads per month

Travis branch

NPM version




JavaScript Style Guide

code style: prettier

semantic release

Commitizen friendly

License

Greenkeeper badge

## Environment support

| Node | CLI | UMD | Browser |
| :--- | :-: | :-- | :------ |
| 𐄂 | ✔ | 𐄂 | 𐄂 |

## Install

```sh
npm install -D @brikcss/git-hooks
```

## Setup

1. Configure `.lintstagedrc.js` to run your desired linters and formatters. See [lint-staged documentation](https://www.npmjs.com/package/lint-staged).
2. Configure `.huskyrc.js` to run your desired git hooks. See [husky documentation](https://github.com/typicode/husky). For example:
```js
module.exports = {
hooks: {
'pre-commit': 'lint-staged',
'commit-msg':
'commitlint -e $HUSKY_GIT_PARAMS && . ./node_modules/.bin/commit-msg-stamp-branch $HUSKY_GIT_PARAMS',
'pre-push': '. ./node_modules/.bin/pre-push-check-stage && echo "\n[ok] Pushing code..."',
},
};
```

### lint-staged

lint-staged allows you to easily lint and format _staged files_. This negates the need to lint files during a watch/build process. See [lint-staged documentation](https://www.npmjs.com/package/lint-staged) for configuration options.

### `commit-msg-stamp-branch`

This hook appends the source branch name to the commit message. No configuration necessary, just add to husky's configuration as shown above.

### `pre-push-check-stage`

This hook ensures stage is not "dirty" prior to running `git push`. No configuration necessary, just add to husky's configuration as shown above.

### `github-zip`

This hook is intended for use with [Travis](http://travis-ci.org) or similar continuous integration build tools. It grabs files recently published to NPM and compresses them into both a `.zip` and `.tgz` file. This allows you to release the same exact files to GitHub as were released on NPM.