web-dev-qa-db-ja.com

Gitコミットフックをスキップする

私はPythonコードでprint文を探すgitフックを探しています。 print文が見つかると、git commitを防ぎます。

私はこのフックを無効にしたいのですが、そうするコマンドがあると言われました。私はそれを見つけることができませんでした。何かご意見は?

340
Ben

たぶん( git commit manページ から):

git commit --no-verify

-n  
--no-verify

このオプションはpre-commitとcommit-msgフックをバイパスします。 githooks(5) もご覧ください。

コメント付き by Blaise のように、-nは特定のコマンドに対して異なる役割を持つことができます。
例えば、 git Push -n は実際にはドライランプッシュです。
フックをスキップするのはgit Push --no-verifyだけです。


注:Git 2.14.x/2.15では--no-verifyの動作が改善されています。

Kevin Willford( ``) による commit 680ee55 (2017年8月14日)を参照してください。
Junio C Hamano - gitster - in commit c3e034f に合併、2017年8月23日)

commitpre-commitフックがない場合はインデックスの破棄をスキップします

git commitフックが途中でそれを更新した場合に備えて、 "pre-commit"はインデックスを破棄してファイルシステムから再読み込みするために使用されていました。 pre-commitフックを実行していないことがわかっていれば、これは最適化されています。

597
VonC

man githooksから:

プリコミット
このフックはgit commitによって呼び出され、 - no-verifyオプションでバイパスすることができます。これはパラメータを取らず、提案されたコミットログメッセージを取得してコミットする前に呼び出されます。このスクリプトから0以外のステータスで終了すると、git commitが中止されます。

14
Chris Eberle