36

私は GitHub の企業アカウントにいくつかの Git プライベート リポジトリを持っていますが、特定のブランチ (マスター、開発、ベータ、またはパターンなど) を誰かにプッシュしてほしくありません。また、いくつかのフックを定義しようとしましたが、これを GitHub で実行し、クライアントの事前プッシュ フックで実行しないようにしたいと考えています。

だから私の問題を簡単に説明するために、私は欲しい:

git push origin develop

ブランチ名が原因でサーバー ( GitHub ) に拒否されるのですが、プリプッシュ フックによるクライアント チェックはしたくありません。本当は GitHub にチェックして拒否してもらいたいのです。

また、特定のユーザーのみに許可することが可能であれば、最初は全員に対して無効にするだけで十分です.

4

4 に答える 4

29

長いチャットの後、IRC から回答がありました。フォークとプル リクエストを操作するか、各開発者のマシンにプレプッシュ フックを追加する必要があります。これは、GitHub がブランチごとのアクセス許可を許可せず、キャンセル フックを事前公開しないためです。これが私が得た答えの一部です:

リポジトリをフォークします。これにより、開発者は自分のバージョンのリポジトリで作業でき、間違ったブランチにコミットすることを心配する必要がなくなります。そして、アップストリームの誰かが、コミットする必要のあるブランチにいつでもマージできます。

ええ、しかし私たちは会社であり、すべての開発者がフォークを持っていることを望んでいません

なぜだめですか?

たとえば、同じ機能で他の開発者と協力するために、共通のレポにブランチをプッシュできるはずです。

https://help.github.com/articles/using-pull-requestsを読んでください。複数のフォーク間でパッチを送信することはできます。これは git が構築されたモデルです

私は知っていますが、機能/ホットフィックスの実際の作業を一元的にすばやく確認できるようにしたいと考えています...

簡単に言うと、GitHub はブランチごとのアクセス許可をサポートしていません

于 2013-08-29T22:45:31.803 に答える
11

この投稿がかなり古いことは承知していますが、答えを探している人にとってはまだ役立つと思います.

さて、今では GitHub で可能です。
最近、GitHub は保護されたブランチ機能を導入しました。これにより、次のことが可能になります。

保護されたブランチは、リポジトリ管理者が保護することを選択したブランチで Git のいくつかの機能をブロックします。保護されたブランチ:

  • 力押しできない
  • 削除できません
  • 必要なステータス チェックに合格するまで、変更をマージすることはできません
  • 必要なレビューが承認されるまで、変更をマージすることはできません
  • 編集することも、Web からファイルをアップロードすることもできません

幸運を。

于 2016-09-20T19:51:18.743 に答える
4

探しているフックはpre-receive-update前者はプッシュごとに 1 回実行され、後者はプッシュごとにブランチごとに 1 回実行されます。しかし重要なのは、これらがサーバー側のフックであることです。

于 2013-08-29T20:45:26.543 に答える