14章フック
Gitの標準的な動作は、フックによって微修正できる。リポジトリでコミットやパッチといった特定のイベントが発生したときにフックを使えば、1個以上のスクリプトを実行できる。一般に、イベントはあらかじめ決められたステップに分割されており、それらのステップにカスタムスクリプトを結びつけられるようになっている。Gitイベントが発生すると、各ステップの最初の処理として結びつけられたスクリプトが実行される。
フックは特定のリポジトリに所属し、そのリポジトリに影響を与えるが、クローン操作ではコピーされない。つまり、プライベートリポジトリでセットアップしたフックは新しいクローンにはコピーされず、新しいクローンの動作を変えない。開発プロセス上の何らかの理由で各開発者の個人用開発リポジトリにフックをインストールしなければならない場合には、クローン以外の手段で.git/hooks
ディレクトリをコピーするようにしなければならない†1。
[†1] 監訳注:リポジトリ内に.githooks
などのフック共有用のディレクトリを作成してフックをそのディレクトリ内に配置しておき、各開発者はリポジトリをクローン後にgit config core.hooksPath .githooks
を実行してデフォルトの.git/hooks
の代わりに.githooks
を使用する設定を追加することで、開発チーム内でフックを共有しつつフックの変更履歴もGitで管理することができる。
これと新しいリポジトリの初期化を混同しないようにしよう。git init
コマンドが実行されると、Gitは新しいリポジトリに利用可能なフックをコピーする。コピーされるのは、Gitが提供するデフォルトサンプルフックと、テンプレートディレクトリ(template ...
Get 実用 Git 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.