このページの内容

Awesome Git Hooks

Git Hooksを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

Gitフックスクリプト

注: 各スクリプトの隣のアイコンは、記述言語を表します。

iconlanguage
Bash Iconbash
Python Iconpython
Perl Iconperl

commit-msg

  • enforce-insert-issue-number - prepare-commit-msg/insert-issue-number.hookが生成したISSUE-[#]文字列をユーザーが削除していないことを確認します。Python Icon

post-checkout

  • delete-pyc-files - 新しいブランチをチェックアウトするたびに、すべての.pycファイルを削除します。Python Icon
  • new-branch-alert - 新しいブランチを初めてチェックアウトしたときにメッセージを表示します。Bash Icon

post-update

  • update-server-info - dumb transport(例: http)で使用するためにpack済みリポジトリを準備します。Bash Icon

pre-commit

  • dotenvx - .envファイルをコードへコミットすることを防ぎます。Bash Icon
  • format-code - コードをフォーマットするコマンドを実行し、フォーマット後に変更されたファイルを再追加します。Bash Icon
  • search-term - コード内で特定の用語が見つかった場合にコミットを失敗させます。Bash Icon
  • spell-check-md-files - 拡張子.mdのファイルのスペルミスを確認します。Bash Icon
  • verify-name-and-email - user.nameまたはuser.emailが正しくない場合にコミットを失敗させます。Bash Icon

prepare-commit-msg

  • include-git-diff-name-status - “Git status”出力の直前に、“Git diff —name-status -r”の出力をメッセージへ含めます。Bash Icon
  • insert-issue-number - コミットメッセージの先頭へissue番号を挿入します。Python Icon

pre-push

  • prevent-bad-push - ログメッセージが”WIP”(作業中)で始まるコミットのpushを防ぎます。Bash Icon

pre-rebase

  • prevent-rebase - すでに’next’ブランチへマージされたトピックブランチのrebaseを防ぎます。許可すると、すでに公開された履歴がrebaseされるためです。Bash Icon

query-watchman

  • fsmonitor-watchman - 指定時刻以降に変更されたすべてのファイルをstdoutへ出力します。Perl Icon

update

  • update - 注釈なしタグの流入をブロックします。Bash Icon

クイックスタート

  1. 任意のフックを選んでください。どこから始めるかわからない場合は、“verify-name-and-email”を試してください。
  2. プロジェクトのフックフォルダー(.git/hooks)へ移動します。
  3. その中にすでにファイルのリストがあるはずです。使用したい正確なコミットタイプ(例: “commit-msg”、“pre-rebase”、“pre-commit”など)という新規ファイルを作成してください。拡張子は付けないでください。

create new file

  1. 新しいファイルを開き、このリポジトリから選んだフックのコードを貼り付けます(例: verify-name-and-email.hook
  2. ファイルを保存します。完了です。Gitフックが自動的にトリガーされます。

ツール

  • Husky - 優れたユーザーインターフェースでGitフックを管理します。

  • Overcommit - 完全に設定可能かつ拡張可能なGitフックマネージャー。

  • Git Build Hook Maven Plugin - Mavenビルド中にGitフックと設定をインストールします。

  • CaptainHook - PHP開発者向けGitフックマネージャー。

  • pre-commit - 多言語pre-commitフックを管理・保守するためのフレームワーク。

文書ガイド

動画ガイド

ライセンス

CC0
この作品はCreative Commons Attribution 1.0 International Licenseの下でライセンスされています。