4

カスタムアクションを実行するための小さな pre-commit フックを書きました。私の中央リポジトリは、Solaris サーバー上にあり、HTTP が有効になっています。

/apps/opt/git/myrepo.git 

pre-commit フックを編集し、以下のように変更しました。

#!/bin/sh -x
if [ $LOGNAME -ne bala ]; then
   echo  "You are not allowed"
   exit 1;
fi

このリポジトリのクローンを作成し、他のユーザーを使用してコミット アクションを実行すると、メッセージは表示されず、コミットされます。コミットがpre-commitフックを呼び出さないのはなぜですか?

.git/hooksまた、ディレクトリの下に複製されたレポを見ることができました。" pre-commit" フックはありません。デフォルトのテンプレートしか表示されません。

誰でもここで助けることができますか?

4

1 に答える 1

6

ここでの答えのいくつかの要素:

  • フックはクローンを介して伝播されず、リポジトリに対して純粋にローカルです
  • フックを定義するリポジトリを複製すると、そのフックが見つかりません
  • ローカル リポジトリでのコミットを防止したい場合は、ローカル リポジトリにpre-commit(あなたが行ったように) が必要です。実行可能であることを確認してください。
  • 「bala」以外が行ったコミットをブロックしたい場合はpre-receive、サーバー側に
于 2011-05-10T08:45:46.280 に答える