A better pre-commit hook for git.
Install the gem
$ gem install pre-commit
Use the pre-commit command to generate a stub pre-commit hook
# In your git repo
$ pre-commit install
This creates a .git/hooks/pre-commit script which will check your git config and run checks that are enabled.
These are the available checks:
- white_space
- console_log
- debugger
- tabs
- jshint
- js_lint_all (Runs JSLint on all staged JS files)
- js_lint_new (Runs JSLint on all new staged JS files)
- closure_syntax_check
- php (Runs php -l on all staged files)
- ruby_symbol_hashrockets (1.9 syntax. BAD :foo => "bar". GOOD foo: "bar")
- local (executes
config/pre-commit.rb
with list of changed files) - merge conflict (Will check if you are about to check in a merge conflict)
- migrations (Will make sure you check in the proper files after creating a Rails migration)
- ci (Will run the
pre_commit:ci
rake task and pass or fail accordingly)
To configure which checks you would like to run, simply set the pre-commit.checks
git configuration setting.
To enable white_space
and tab
checks:
# From your git repo
$ git config "pre-commit.checks" "white_space, tabs"
To enable white_space
, console_log
and debugger
checks:
# From your git repo
$ git config "pre-commit.checks" "white_space, console_log, debugger"
Note: If no checks are configured, a default set of checks is run:
white_space, console_log, debugger, tabs, jshint, migrations, merge_conflict, local