4

私たちは Git を 3 つのメイン ブランチ Development、Test、Master のベア リポジトリで使用しています。

多くの開発環境があり、すべてが git リポジトリを持っています。全員が開発ブランチを作成し、そのブランチで作業し、コードを裸リポジトリの開発ブランチにプッシュします。

その間、開発者が自分のコードを開発ブランチから Test & Master ブランチにプッシュすることを制限したいと考えています。

パスワードを使用してベアリポジトリブランチを保護する方法はありますか?

4

3 に答える 3

6

Linux を使用してリポジトリをホストしている場合は、gitoliteを使用することを強くお勧めします。

Gitolite を使用すると、ユーザーまたはユーザーのグループごとに、プッシュできるブランチなどを指定できます。

Gitolite は、複数の git リポジトリをホストし、それぞれに多くの開発者がいて、「誰でも任意のリポジトリに対して何でもできる」という考えが適切ではないサーバーで役立ちます。説明する 2 つの例を次に示します。

ssh キーを使用してユーザーを識別し、それに基づいて許可するかどうかを決定します。

于 2013-03-27T09:14:32.473 に答える
2

または、分散プルベースのアプローチに変更します。

チームごとにブランチを持つ代わりに、独自のリポジトリを持っています。そこにあるすべてのものへの書き込みアクセス。

読み取り専用のマスター ブランチの代わりに、選択したメンテナー グループのみが書き込みアクセスできるメイン リポジトリが 1 つあります。何かを開発リポジトリからメインリポジトリにマージしたいときはいつでも、彼らはメンテナーに通知してそれを行わせる必要があります.

また、リポジトリを簡単に管理するために gitolite または Gitosis を使用することをお勧めします (私自身は Gitosis しか使用していません。セットアップと保守は簡単です)。

于 2013-03-27T09:23:46.973 に答える
1

「git only」で特定のブランチをパスワード保護することはできません。すべての権限、または権限なしです。

Ikke が言ったように、許可を処理するのに非常に優れた gitolite を使用できます。

より「手作り」の代替手段は、リモートの裸のリポジトリで pre-receive フック ( hooks/post-receive ) を使用してパスワードを要求することです。

簡単なシェル スクリプトを使用するか、任意の言語を使用してこれを行うことができます。

于 2013-03-27T10:04:43.920 に答える