2017-12-07 32 views
0

私はgitlabサーバー側にpre-commitフックファイルを追加しようとしました。私はプリコミットフックがクライアントサイドフックであることを知っています。私は、すべてのプロジェクトの.git/hooksフォルダにプリコミットフックファイルを追加したいだけです。git pre-commitフックファイル

私が試したこと: - 私のgitlabサーバマシンのファイルpre-commit.sampleを編集して、新しいプロジェクトを作成しました。しかし、私はRepoをクローンした後に私のローカル(ウィンドウ)で編集したサンプルフックファイルを見つけられませんでした。

サーバー側ですべてのプロジェクトのgitフォルダにpre-commitフックを追加する方法はありますか?私たちには500以上のプロジェクトがあるからです。

+0

どのようにすべてのプロジェクトをクローンしますか? 'git clone'やいくつかのツールで? – ElpieKay

答えて

3

あなたはhttps://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks

のドキュメントからそれはあなたがリポジトリのクローンを作成する場合、クライアント側のフックがコピーされないことに注意することが重要だ、ということはできません。これらのスクリプトの目的がポリシーを実施することである場合は、おそらくサーバー側で行うことが望ましいでしょう。

+1

私を案内してくれてありがとう。私は 'pre-receive'フックでこれを行います – Parkavi

0

これはクライアント側のフックとの基本的なトレードオフです。これらは一元的に構成できません。

ワークツリーのルートで実行するスクリプトと共に、ワークツリーに必要なフックスクリプトを追加して、スクリプトを.git/hooksにコピーすることができます。その後、個々のユーザーがフックをにしたい場合、スクリプトを実行できます。 (.gitが作業ツリーのルートにないエキゾチックなセットアップがないと仮定します)

しかし、いいえ、あなたのレポをクローンすると、実行するように選択した任意のコードが自動的に作成される他の誰かのコンピュータ上であなたの仕様の時に。

+0

Gotcha!私は 'pre-receive'フックに行きます – Parkavi

関連する問題