4

git レポ管理についての質問です...

一部のユーザーに対してのみ TAG の作成を許可するように git リポジトリを構成することは可能ですか? ブランチに関する同様の質問: 特定のブランチを変更できるユーザーのリストを構成することは可能ですか?

このすべての構成のアイデアは次のとおりです。多くの開発者との git リポジトリがあり、いくつかの安定したブランチとタグのリストが必要です。また、これらのブランチを変更してタグを作成できるのは上級開発者だけです。他のすべての開発者は、引き続きブランチなどを作成できます。しかし、開発者が自分の変更を安定したブランチの 1 つに昇格させたい場合は、上級者に連絡してマージを依頼する必要があります...

ありがとうございました

4

4 に答える 4

1

.git/refs/heads および .git/refs/tags で標準のファイル アクセス ルールを使用してアクセスを制限できます。たとえば、.git/refs/tags モードを 775 にすると、.git/refs/tags を所有するグループのメンバーだけがタグを作成できるようになります。同様に、読み取りアクセス許可を .git/refs/heads/foo に制限して、読み取りアクセス権を持つ人だけがブランチ foo をチェックアウトできるようにし、.git/refs/heads への書き込みアクセス権を持つ人だけが新しいブランチを作成できるようにすることができます。枝。ただし、これは信頼できない手法であり、適切なアクセス権を持つ個別のリポジトリを使用する方がはるかに優れています。

于 2010-07-08T07:25:13.407 に答える
1

Gerrit (主にコード レビュー システム) は、この問題を説明しているとおりにほぼ正確に解決します。

グループを定義し、誰がブランチでレビューのためにプッシュできるか、ブランチに変更を直接プッシュできる人、(さまざまなタイプの) タグをプッシュできる人、さらには最高機密のブランチを表示/プッシュできる人について、リポジトリのアクセス許可を設定します。 .

私たちの gerrit インスタンスは世界中に公開されていますが、誰が何をどこにプッシュできるかを制限しています (また、他のプロジェクトよりも多くのことができる共同作業者がいくつかのプロジェクトにいます)。

于 2010-07-07T20:35:25.043 に答える
1

ブランチと注釈付きタグ (つまり、プッシュ/プルできるバージョン付きタグ) に対して、gitoliteはその種のアクセス制御を提供できます。

「 ref と refex のマッチング」を参照してください(gitolite 3.x)

この種のツールを使用すると、「中央」リポジトリを保護できます。適切な資格情報があれば、それらを複製して、ローカル コピーで必要なことを行うことができますが、プッシュバックするとすぐに、gitolite がアクセス許可を制御します。そのリモートリポジトリに関連付けられています。

refex が指定されていない場合、refs/.*たとえば次のようなルールでは、デフォルトで になります。

RW              =   alice

refs/(またはVREF/)で始まらない refex は、で始まると見なされrefs/heads/ます。
これは、通常のブランチが次のように便利に記述できることを意味します。

RW  master      =   alice
# becomes 'refs/heads/master' internally

タグは完全に修飾する必要があります:

RW  refs/tags/v[0-9]    =   bob

refs/tag/したがって、デフォルトでは、ユーザーまたはユーザーのグループに対して許可する明示的なルールがない限り、タグをプッシュすることはできません。

于 2010-07-07T19:43:51.573 に答える
0

ドキュメントと個人的な経験を読んで、Git はそのように使用するように設計されていないことを理解しています。あなたが説明していることは、より少ない開発者が開発リポジトリにプッシュし、上級開発者がそこから変更、マージ、テストなどをプルし、本番リポジトリにデプロイする複数のリポジトリシナリオで簡単に処理できます。開発者はプルできます。

于 2010-07-07T20:37:37.143 に答える