git リポジトリの master ブランチをロックする必要があります。pre-commit フックを試しましたが、それらはクライアント側のフックにすぎませんが、ほとんどのユーザーからマスター ブランチをロックしたいと考えています。git (私は github を使用します) の pre-receive フックの手順、またはマスターをロックするためのより良い方法を教えてもらえますか?
PS: gitolite は、ライセンス版の github ではサポートされていません。
git リポジトリの master ブランチをロックする必要があります。pre-commit フックを試しましたが、それらはクライアント側のフックにすぎませんが、ほとんどのユーザーからマスター ブランチをロックしたいと考えています。git (私は github を使用します) の pre-receive フックの手順、またはマスターをロックするためのより良い方法を教えてもらえますか?
PS: gitolite は、ライセンス版の github ではサポートされていません。
ライセンス供与された GitHub は「GitHub:enterprise
」を意味し、記事「GitHub からの移行:FI」で説明されているように、カスタム フックは許可されていないことも意味します。
(「カスタム git フックを GitHub Enterprise リポジトリに追加するにはどうすればよいですか?」も参照してください) 。
したがって、私はこれに別の方法でアプローチし、そのサーバーで 1 つのリポジトリを維持するのではなく、2 つのリポジトリを維持します (2 つ目は最初のリポジトリのクローンです)。
誰でも最初のリポジトリにプッシュできますが、選択したユーザーのみが 2 番目のリポジトリにプッシュできます。これにより、最初のリポジトリから 2 番目のリポジトリにプッシュできるものを選択できます。
したがって、' ' はある意味でrepo2
あなたの ' ' を表し、' 'は他のすべてのユーザーがプッシュできる他のブランチを表します。これは、このGitHub 要旨の記事
に少し似ています。master
repo1
リリース エンジニアリング チームを独自の組織に分けることをお勧めします。
開発者は、リリース エンジニアリング チームに存在するすべてのリポジトリをフォークする必要があります。開発者は、組織内で
コミットできるようになります。 組織にコミットを取得するには、プル リクエストを送信する必要があります。master
release_engineering
master
注: のブランチにコミットすることは、 のブランチにコミットacme_developers/foobar
することとは異なることを顧客に納得させるには、しばらく時間がかかります。master
acme_release_engineering/fooba
簡単な解決策は、おそらくブランチ ロックをサポートする gitolite またはその他のシステムでリポジトリを複製してホストし、現在の github リポジトリを保持する場合は、ポストコミット フックをセットアップして現在の github リポジトリにミラーリングすることです。私たちは現在、github のクローンを使ってそれを行っています。