298

Git post-commit フックを作成しましたが、正しく動作します。ただし、このフックを追加して、作業中の現在 (および将来) のすべての Git リポジトリに適用したいと考えています。~/.git/hooks/プロジェクト ディレクトリの hooks ディレクトリではなく、自分のディレクトリにフックを追加しようとしましたが、うまくいかないようでした。

システム上のすべてのリポジトリに適用されるグローバル Git フックを作成する方法はありますか (各プロジェクト ディレクトリにコピーする必要はありません)。そうでない場合、今後の最善の解決策は何でしょうか? おそらく git-init テンプレートでしょうか?

4

4 に答える 4

300

Git 1.7.1 以降、gitconfigで init.templatedir を設定して、Git にテンプレートを探す場所を指示できます。

次のように設定します。

git config --global init.templatedir '~/.git_template'

その後、作成または複製する新しいリポジトリは、このディレクトリをテンプレートに使用します。必要なフックを に配置します~/.git_template/hooksgit init既存のリポジトリは、同じディレクトリで実行することにより、適切なテンプレートで再初期化できます.git

1.7.1 より古いバージョンの Git の場合、私のようにディレクトリを残りのドット ファイルと一緒git init --template ~/.git_templateに管理したい場合は、実行しても問題ありません。環境を.git_template使用して、テンプレート ディレクトリがどこにあるかを確認することもできます。$GIT_TEMPLATE_DIRgit init

于 2012-01-12T21:34:26.470 に答える
238

このフックを追加して、作業中の現在 (および将来) のすべての git リポジトリに適用したい

git 2.9+ (2016 年 6 月) では、次のことを行うだけです。

git config --global core.hooksPath /path/to/my/centralized/hooks

「デフォルトの git フックの変更」を参照してください。これは、集中化されたフックを管理するために行われました。

于 2016-05-18T07:42:36.527 に答える
72

システムのどこにでも (あなた以外のユーザーを含めて) それらが必要な場合は、インストールされたテンプレート ディレクトリの内容を$PREFIX/share/git-core/templates/hooks変更$PREFIXでき/usr/localます/usr

これを自分だけのものにしたい場合は、はい、最も簡単な--templateのは git-init のオプションです。保持したいインストール済みのデフォルト バージョン (個々のフック、info ディレクトリなど) へのシンボリック リンクを含む個人用のテンプレート ディレクトリを簡単に保持できますhooks/post-commit

于 2010-02-19T01:49:46.777 に答える
6

最小限のアプローチはgit_hooks/、リポジトリにディレクトリを作成して、そのプロジェクト用に作成したフックを追跡し、将来のユーザーの注意を .xml で言及して注意を促し、READMEクローン作成後に正しいことを実行することを信頼することです。私はこれについてしばらく考えて、漸進的なアプローチを選択しました。将来的にはgit-hooks のようなツールの使用を検討するかもしれません。

于 2012-06-01T20:50:20.897 に答える