9

私が達成しようとしているのは次のとおりです。同僚はグループ @coworkers に属し、クライアントはグループ @clients に属しています。

Git リポジトリは誰でも読み書きできますが、特別なブランチがあります。つまり、新しいブランチ「インターン」を作成し、@coworkers は RW+ アクセス権を持つ必要がありますが、クライアントは R または W を実行できないはずです。

私はそれを達成できると思った

repo myrepo
    -    intern    = @clients
    RW+            = @clients @coworkers

しかし、これはうまくいきません。

4

3 に答える 3

10

ギトライトの作者との話し合いによると、ブランチの読み取りアクセス制限は不可能です。

Gitoliteのブランチごとのものは、書き込みアクセスに対してのみ機能します。git自体はその区別をサポートしていないため、読み取りアクセスでは機能しません。

于 2011-02-17T11:10:16.143 に答える
4

gitolite の部分コピー機能を使用して、最新バージョンの gitolite v3.x で gitolite ブランチへの読み取りアクセスを制限できるようになりました

  1. 必ず最新の gitolite バージョンを使用してください
  2. ~/.gitolite.rc ファイルpartial-copyのセクションの行のコメントを外しますENABLE
  3. $GIT_CONFIG_KEYS = '.*'~/.gitolite.rc ファイルで設定
  4. 部分コピー オプションを使用して、元のリポジトリのコピーであるが、いくつかのブランチがない別のリポジトリを作成します。

例: クライアントにdeployブランチへのアクセスのみを許可する場合

repo    my-repo
    RW+     =   @coworkers

repo    my-repo-deploy
    RW  deploy  =   @clients
    -           =   @clients

    -   VREF/partial-copy           =   @all
    config gitolite.partialCopyOf   =   my-repo

git が master ブランチを削除できないと文句を言う場合は、サーバーで次のコマンドを使用できます。

sudo git config --system receive.denyDeleteCurrent warn
sudo git config --global receive.denyDeleteCurrent warn

クライアントは、次のようなコマンドを使用して my-repo-deploy リポジトリのデプロイ ブランチを複製できるようになりました。

git clone -b deploy git@your-server:my-repo-deploy
于 2014-06-24T14:20:31.350 に答える
0

私はギトライトの専門家ではありませんが、ルールは順番に処理されていると思います。最後の 2 行を単純に逆にしてみましたか? つまり、最初に @clients と @coworkers にアクセス許可を付与し、次に @clients によるインターンへのアクセスを拒否します。

于 2011-01-12T14:54:58.347 に答える