Git フックの概要

完了

継続的デリバリーには、かなりのレベルの自動化が必要です。 品質コードベースを持っていない場合、継続的デリバリーを実現することはできません。 そのような場合は Git を使用すると便利です。

これにより、コードベースのチェックのほとんどを自動化できます。 リモートはもちろん、コードをローカル リポジトリにコミットする前でも可能です。

Git フック

Git フックは、特定の Git ライフサイクル イベントの前または後にコードを実行できるメカニズムです。

たとえば、commit-msg イベントにフックして、コミット メッセージ構造が推奨される形式に従っていることを確認できます。

フックには、シェル、PowerShell、Python などのスクリプトを含む任意の実行可能コードを指定できます。 または、バイナリ実行可能ファイルにすることもできます。 制約はほぼありません。

唯一の条件としては、フックをリポジトリ ルートの .git/hooks フォルダーに格納する必要があります。 また、関連するイベントと一致する名前を付けする必要があります (Git 2.x)。

  • applypatch-msg
  • pre-applypatch
  • post-applypatch
  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • pre-rebase
  • post-checkout
  • post-merge
  • pre-receive
  • update
  • post-receive
  • post-update
  • pre-auto-gc
  • post-rewrite
  • pre-push

Git フックを使用する実際のユース ケース

Git フックでは、スクリプトが呼び出される特定の種類のイベントでスクリプトが実行されるので、Git フックを使用すると、ほぼどのようなことでも実行できます。

フックを使用してポリシーの適用、一貫性の確保、および環境の制御を実現できる例を次に示します。

  • マージのために事前条件を適用する
  • コミット メッセージで作業項目 ID の関連付けを確認する
  • 問題のあるコードをユーザーとチームがコミットするのを防ぐ
  • チームのチャット ルーム (Teams、Slack、HipChat など) に通知を送信する

次のユニットでは、Git フックを実装する方法について説明します。