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


505

Pythonコードでprintステートメントを探すgitフックを探しています。印刷ステートメントが見つかった場合は、gitコミットが行われません。

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


1
より一般的である溶液(とは異なるgitのコマンドについても作業commit):stackoverflow.com/questions/58337861/...
ガブリエルDevillers

回答:


868

多分(git commitmanページから):

git commit --no-verify

-n  
--no-verify

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

以下のようにコメントブレーズ-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浜野- -コミットc3e034f、2017年8月23日)
gitster

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

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


Davi Lima がコメントで指摘しているgit cherry-pickは--no-verifyがサポートされていないことです。
したがって、cherry-pickがpre-commitフックをトリガーする場合、このブログの投稿のように、git cherry-pickを続行するために、なんらかの方法でそのフックをコメント/無効にする必要がある場合があります。
の場合git rebase --continue、マージ競合解決後に同じプロセスが必要になります。


1
チェリーピックについては、web-dev.wirt.us / info / git
Davi Lima

1
@DaviLimaありがとうございます。見やすくするため、回答にコメントを含めました。
VonC、

1
ありがとう、@ Vonc。同じことがgit rebase --continuebtw でも起こります
Davi Lima

こんにちは、私の場合、私のチームの誰かがhookいくつかの事前コミットスクリプトで私のフォルダーを更新し続けていますhook
Zennichimaro

@Zennichimaro多分あなたはそのレポフックフォルダを別の場所にコピーして、プルがレポフックフォルダに影響するかどうかを検出し、そのコピーを提案するマージ後フック(git-scm.com/docs/githooks#_post_merge)をセットアップできます。ローカルフックフォルダー(リポジトリ外)へのコンテンツ:こうすることで、同僚がプッシュした内容によってフックをオーバーライドするかどうかを少なくとも制御できます。
VonC

22

からman githooks

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


2

very beginnersこのコミットに数時間を費やしている人(commentおよびno verify)にこれ以上問題がない場合

git commit -m "Some comments" --no-verify
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.