759

Pythonコードでprintステートメントを探すgitフックを見ています。print ステートメントが見つかった場合は、git commit が妨げられます。

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

4

6 に答える 6

1282

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

git commit --no-verify -m "commit message"
           ^^^^^^^^^^^
-n  
--no-verify

このオプションは、pre-commit および commit-msg フックをバイパスします。githooks(5)も参照してください。

Blaiseがコメントしたように、-n特定のコマンドに対して異なる役割を持つことができます。
たとえば、git push -n実際には予行演習です。フックをスキップする
だけです。git push --no-verify


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

Kevin Willford (``)によるcommit 680ee55 (2017 年 8 月 14 日)を参照してください。( 2017 年 8 月 23 日コミット c3e034fJunio C Hamanoによってマージされました)
gitster

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

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


Davi Limaはコメントで--no-verify をサポートしてgit cherry-pickないと指摘しています。
したがって、cherry-pick が pre-commit フックをトリガーする場合、このブログ投稿のように、git cherry-pick を続行するには、そのフックを何らかの形でコメント/無効にする必要があります。

git rebase --continueの場合、マージ競合の解決後に同じプロセスが必要になります。

于 2011-08-29T13:36:30.647 に答える
29

差出人man githooks

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

于 2011-08-29T13:36:31.597 に答える