多くの人がかなり長い間待っていたことが起こりました。 つまり、最近、 保護されたブランチと呼ばれる機能が発表 されました 。これにより、リポジトリ内のブランチを操作するためのルールを設定できます。 はい、マスターで強制プッシュを無効にできるようになりました!
猫の下には、開発者のブログからのスクリーンショットと抜粋があります。
保護されたブランチ機能により、リポジトリ管理者は指定されたブランチでの強制プッシュ操作を禁止できます。
リポジトリでオプションがアクティブな場合、リポジトリ設定のタブで設定できます。
ブランチ設定のスクリーンショット
強制プッシュをブロックする機能に加えて、必須チェック(ステータスチェック)のリストを設定できます。 この機能はStatus APIのおかげで機能するため、コレクターの実行、テストの実行、静的アナライザーの実行など、統合可能なアクションをチェックできます。
必要なチェックの少なくとも1つが失敗した場合、[マージ]ボタンはアクティブになりません。
ステータスを信頼するには、ブランチが関連している必要があります。 これにより、合併後に何も壊れないことが保証されます。 新しい[ブランチの更新]ボタンを使用すると、1回のクリックでベースブランチの最後の状態(たとえば、マスター)を現在のブランチに追加し、以下を確認できます。
トピックの詳細については、 ヘルプページを参照してください 。
私の観点から、強制プッシュの禁止は、最近のgithubに登場した最も賢明なものであると付け加えます。 これで、後輩がずさんなプッシュでmasterブランチを台無しにすることを心配する必要はありません。 もちろん、この問題は他の方法で解決されました。 メインリポジトリまたはリポジトリ全体に対してのみ、企業リポジトリでの強制プッシュを禁止することができました 。
安全なブランチが登場する前に、個々の開発者はプッシュ操作用のフックを設定して、犠牲をローカルに防ぐようにアドバイスされていました。 これがまだ100%の保証を与えていないことは明らかです。
他のチームでは、各従業員がリポジトリを分岐し、そこからのリクエストのプールを設定する必要があるモデルが採用されています。 したがって、リポジトリへの直接アクセスはエリートのみに許可されます。 ただし、これは必ずしも便利ではありません。
githubが引き続き私たちを喜ばせることを願っています。
PS:オプションは9月3日に発表されました。 現時点では、私の公開リポジトリで動作します (ところで、 次のリリースをリリースしました )。