Gitフックとは?
ぎっとふっく
Gitフックとは、コミットやプッシュなど特定のGitイベントが発生したタイミングで自動的に実行されるスクリプトのことです。
Gitフック(Git hooks)とは、Gitの操作(コミット・マージ・プッシュなど)の前後に自動的に実行されるスクリプトの仕組みです。リポジトリの.git/hooks/ディレクトリに所定の名前でスクリプトを置くことで有効になります。シェルスクリプトのほか、PythonやRubyなど任意のスクリプト言語で記述できます。
フックはクライアントサイドとサーバーサイドに大別されます。代表的なフックは次のとおりです。
- pre-commit:コミット実行前に走る。lintチェック・テスト実行・コードフォーマットなどに使われる。スクリプトが非ゼロ終了するとコミットが中断される。
- commit-msg:コミットメッセージが書かれた後、保存前に実行される。メッセージのフォーマット検証(プレフィックスの必須化など)に利用される。
- pre-push:リモートへのプッシュ前に実行。テストを通過しないとプッシュを阻止できる。
- post-merge:マージ完了後に実行。依存パッケージの自動インストールなどに利用される。
Gitフックはチーム開発でのコード品質担保に非常に有効ですが、.git/hooks/はリポジトリに含まれないためチーム間での共有が手間になる問題があります。これを解決するため、HuskyやLefthookといったツールが広く使われており、フック設定をリポジトリ内のファイルで管理してチーム全員に適用できます。
使い方・例文
pre-commitフックにESLintとPrettierを仕込んでおくと、コミット時に自動でコードスタイルが整形され、lintエラーがある場合はコミットが中断されます。
この用語をシェア
最終更新: