Husky でフックを共有する
Husky を使ってチーム全体で Git hooks を共有し、全員が同じチェックを自動的に実行できるようにする方法を学びます。
「Husky でフックを共有する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
ネイティブフックの問題
ネイティブGitフックは.git/hooksに保存されますが、このディレクトリはリポジトリにコミットされません。そのため、チームメンバーがフックを自動的に取得することはできません。
Huskyとは
Huskyは、フックをリポジトリ内に保存して全員の環境にインストールする人気のツールです。これにより、チーム全体で同じチェックを実行できます。
Huskyのインストール
Node.jsプロジェクトにHuskyを開発用依存関係として追加します。
npm install --save-dev huskyHuskyの初期化
initコマンドによって.huskyディレクトリが設定され、Gitがそのディレクトリを使用するように構成されます。
npx husky initHuskyによるフックのリダイレクト
Huskyは、Gitのcore.hooksPathを.git/hooksではなく、コミット対象の.huskyフォルダーに設定します。
git config core.hooksPath .huskypre-commitフックの追加
各コミットの前にlintまたはテストコマンドを実行する.husky/pre-commitファイルを作成します。
echo 'npm test' > .husky/pre-commitフックのコミット
.huskyはリポジトリ内にあるため、他のファイルと同じようにコミットします。チームメンバーは次回プルしたときに取得できます。
git add .husky/pre-commit
git commit -m 'Add pre-commit test hook'ステージしたファイルでのリンター実行
Huskyをlint-stagedと組み合わせると、実際にステージしたファイルだけをチェックできるため、コミットを高速に保てます。
npm install --save-dev lint-stagedlint-stagedの設定
package.jsonで、どのファイルにどのコマンドを実行するかを定義します。
{
'lint-staged': {
'*.js': 'eslint --fix'
}
}commit-msgフック
Huskyでは、commitlintのようなツールとcommit-msgフックを使って、コミットメッセージのルールを適用することもできます。
echo 'npx commitlint --edit $1' > .husky/commit-msg必要に応じたフックの回避
緊急時には--no-verifyを使ってフックをスキップできますが、使用はまれにするべきです。
git commit --no-verify -m 'WIP'理解度チェック
Huskyを使ったフックの共有について、理解度を確認しましょう。
まとめ
Huskyを使ってフックを共有する方法を学びました。
.git/hooks内のネイティブフックは共有されません- Huskyはコミット対象の
.huskyフォルダーにフックを保存します core.hooksPathをリダイレクトします- lint-stagedとcommitlintを組み合わせると、チーム全体でチェックできます
よくある質問
「Husky でフックを共有する」レッスンは無料ですか?
はい。「Husky でフックを共有する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「Husky でフックを共有する」で何を学びますか?
Husky を使ってチーム全体で Git hooks を共有し、全員が同じチェックを自動的に実行できるようにする方法を学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Husky でフックを共有する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Git Hooksを理解する
- Pre-commitとPost-merge Hooks
- Git設定のカスタマイズ
- Husky でフックを共有する