12

メンテナンス、テスト、および将来の開発のためのブランチがある製品ベースのGITリポジトリの場合、これらのブランチへのユーザーアクセスを制御するにはどうすればよいですか。アクセスとは、他の人がそこから読み取ったとしても、誤って変更をリポジトリにプッシュできないようにする必要があることを意味します。

例えば、

A - B - C - D - E - F -> master
    |   |       |
    V1  V2'     exp
        |
        V2

「B」は、タグV1のブランチに使用されるコミットです。これは製品のリリースバージョンを対象としています。サポート/メンテナンスエンジニアのみがこれにアクセスできる必要があります。

Cは、最近凍結されたプレリリース製品V2'に使用され、重大なショーストッパーのバグ修正のみを許可する必要があるため、特定の開発者とテストチームのみがアクセスできます。V2がこのブランチから解放されると、V1の場合と同様に、サポートのみがアクセスする必要があります。

Eは、将来のV3の新機能をテストするための分岐に使用されます。サポートではなく、開発者のみがアクセスできます。

「マスター」の変更は、中央の統合チームによるリクエストベース(GitHubと同様)でのみマージする必要があります。

上記はgitでどのように達成できますか?gitosisやその他の外部ツールを見たことを思い出します-これらはgitでの安全な操作に不可欠ですか、それとも他のベストプラクティスはありますか?

ありがとう。

追加されたGitflow のベストプラクティス分岐モデル

4

2 に答える 2

12

リポジトリ (またはブランチ、さらにはディレクトリ) へのプッシュ アクセスを制限するもう 1 つの古典的な方法は、を使用することgitoliteです (これは実際には の大きな進化ですgitosis)。

gitoliteそこで(構成ファイルで)必要なユーザーのグループまたはリポジトリのグループを定義し、RWアクセス権を関連付けることができます。


注: 2013 年 8 月:

リポジトリ管理者の「ブランチ管理」画面から設定できるブランチ制限をリリースしました。

Assembla もそのような保護を提供します(2013 年 3 月以降)。

GitHub この機能はまだありません:
GitHub には 2015 年 9 月からその機能があります。「 github で「マスター」を保護するには? を参照してください。

于 2011-02-23T21:32:03.990 に答える
1

読み取り専用またはコミッターが誰であるかに基づいて、必要なブランチへのコミットを拒否するサーバー側のコミット フックを配置します。

マージ リクエストのワークフローでは、 Gitoriousのローカル インストールを使用し、その Web インターフェースを介してマージ リクエストを送信し、main-lineリポジトリを統合チームに制限します。他のすべての人はサーバー側のクローンから作業し、マージ リクエストをメインライン リポジトリにプッシュします。 .

Gitorious では、サーバー側のフックは必要ありません。main-lineリポジトリへのアクセスを、コミッターになりたい人のみに制限するだけで済みます。メンテナンスがはるかに簡単で簡単です。

于 2011-02-23T21:19:55.017 に答える