LoginSignup
84
80

More than 5 years have passed since last update.

Gitフックを使っておかしいRubyコードをコミットできないようにする

Last updated at Posted at 2013-08-20

RubyコードをRubocopを使って静的に解析していますが、それを自動化するべくGitフックにしました。

下記の内容の.git/hooks/pre-commitファイルを作ります。

.git/hooks/pre-commit
#!/bin/sh
git diff --cached --name-only --diff-filter=AM | grep '\.rb$' | xargs rubocop
exit $?

grep '\.rb$' で拡張子が rb であるファイル、という意味なので、必要に応じてこの部分を変更してください。例えば app ディレクトリ以下のみにしたければ ^app/.*\.rb$ にします。
忘れずに実行権限をつけます。

chmod +x .git/hooks/pre-commit

すると git-commit 時に自動的に追加・変更されたRubyファイルに対してRubocopが走るようになります。Rubocopに通らないとコミットできません :trollface:

背景

Ruby - Rubocopをsyntasticを使ってVimから自動実行する - Qiita でVimからRubocopを使うようにしたのはいいけど、保存の度に一瞬Vimが止まってしまうのが非常にストレスフルだったので、Gitフックに移動させたのでした。

84
80
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
84
80