'git push'のときにgitフックがリモートにプッシュされますか?


93

repo / .git / hooks / post-commitのローカルリポジトリに新しいフックスクリプトを作成してから「gitpush」を実行すると、フックはリモートにプッシュされますか?次に、他の開発者が同じオリジンから「git pull」を実行すると、新しいフックが取得されますか?


3
おそらく、このヘルプstackoverflow.com/questions/3462955/...
ルネHöhle

回答:


79

いいえ。フックはリポジトリごとにあり、プッシュされることはありません。同様に、リポジトリ構成もプッシュされません。また、、.git/infoまたは他の多くのものもプッシュされません。

プッシュとプルは、ブランチ/タグとコミットオブジェクト(およびコミットから到達可能なもの、たとえばツリー、ブロブ)のみを交換します。


14
中央にフックを配置し、各クローンにフックを引っ張って適用する方法はありますか?
f1wade 2016

4
@ f1wade.githooksバージョン管理されるディレクトリを追加してから、シンボリックリンクするか、内部からラッパーフックスクリプトを作成することができます.git。クローン作成は自動的に接続されません.githooksが、接続されると、フックスクリプトの新しいバージョンをプッシュおよびプルできます。
フィリップクーリング

47

いいえ、gitフックはリポジトリコードの一部ではないため、プッシュまたはプルされません。

単純なクライアント側およびサーバー側のフックのリストについては、ドキュメントを参照しください。

特定のリポジトリから複製またはプルするすべてのクライアントに対していくつかのフックを有効にする場合は、フックをコードベースに追加してから、フックをコピーする、またはからリンクする独自のスクリプトを作成する必要がありますrepo/.git/hooks/


4
しかし、コピースクリプトはどのように呼び出されますか?
アダムジョンズ2015

6
@AdamJohnsユーザー/開発者によって呼び出されます。おそらく、開発者setup.shが最初にリポジトリのクローンを作成したときに実行される形式です。この後、フックの更新は、たとえば、プルするたびにフックを更新するスクリプトを再実行するフックを使用することで自動的に実行できます。したがって、開発者が自分でそれを行うことに依存する必要はありません。
cm92 2016年

3

残念ながら、git 2.9以降、それらを.githooksフォルダーに配置して(他の人が言及したように)実行できます。

git config --local core.hooksPath .githooks/

したがって、シンボリックリンクやコピーファイルは必要ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.