1. ホーム
  2. git

[解決済み] Git のフックスクリプトは、リポジトリと一緒に管理することができますか?

2022-03-22 23:58:21

質問

コミットメッセージのプリフォーマットなど、みんなで共有できる基本的なフックスクリプトをいくつか作りたいと考えています。 Git にはそのためのフックスクリプトがあり、通常は以下の場所に格納されています。 <project>/.git/hooks/ . しかし、これらのスクリプトはクローンを作成したときに伝播されず、バージョン管理もされていません。

みんなが正しいフックスクリプトを取得できるようにする良い方法はないでしょうか? フックスクリプトが自分のレポのバージョン管理されたスクリプトを指すようにすればいいのでしょうか?

どのように解決するのですか?

理論的には hooks ディレクトリ(または好きな名前)にすべてのスクリプトを格納し、それらを .git/hooks . もちろん、レポをクローンする各人がこれらのシンボリックリンクをセットアップする必要があります(ただし、本当に派手にして、クローンが半自動的にこれらをセットアップするために実行できるデプロイスクリプトを用意することも可能です)。

nixでシンボリックリンクを行うために必要なことは、以下の通りです。

root="$(pwd)"
ln -s "$root/hooks" "$root/.git/hooks"

使用 ln -sf にあるものを上書きしたい場合は .git/hooks