[Git] .git/hooks/pre-commit をスキップしてコミットする

Tadashi Shigeoka ·  Mon, June 1, 2015

git commit の前に実行されるフックを .git/hooks/pre-commit に 定義しているのですが、たまに無視して commit したいことってありませんか?

Git

pre-commit hook をスキップしてコミットする option

# 長い option
git commit --no-verify

# 短い option 
git commit -n

例えば pre-commit hook を無視して git commit したいシチュエーションとしては、行末に whitespace があると commit させない hook を定義していた場合、既存コードで該当箇所が存在すると hook に引っ掛かってしまいます。

下記のようなケースです。

この例は記事上で見ると分かりにくいのですが var express = require(“express”); の末尾に半角スペースが含まれてしまっています。

$ git diff --cached

diff --git a/hoge.js b/hoge.js
new file mode 100644
index 0000000..8504c82
--- /dev/null
+++ b/hoge.js
@@ -0,0 +1 @@
+var express = require("express"); 


$ git commit

hoge.js:1: trailing whitespace.
+var express = require("express"); 

# -n を付ければ pre-hook をスキップして commit できます
$ git commit -n

たまに pre-hook をスキップしたくなることがあるので、覚えておくと git commit が捗りそうです。

参考情報