2013-10-01 23 views
12

ブランチをプッシュするのではなくマージできるようにブランチを設定する方法はありますか?さらに、BitBucket、GitLab、GitHubで動作する方法はありますか?BitBucket/GitLab/GitHubのマージ専用ブランチ?

私たちは機能ブランチを作成し、それらをBitBucket/GitLab/GitHub(プロジェクトに応じて)にプッシュし、それらを「開発」という統合ブランチにマージします。私は人々が「開発」に直接参加することを妨げたい。

BitBucketには、ブランチへのアクセスを制限する手段がありますが、人がマージ要求を行うこともできません。

+1

技術的には、マージは複数の親を持つコミットです。それを公開する。 – poke

答えて

13

はい:それが呼び出され(GitHub forkits tipsBitBucket forkGitLab forkのように)forking

  • インテグレータのみが担当するレポが1つあります(宛先ブランチにマージされます)。
    開発者はそのリポジトリにプッシュすることはできません。

  • あなたは、元のレポにプルリクエストを作ることができるところから、「レポをフォーク」している:貢献者はプッシュ彼らが望む任意のブランチためにすることができますし、(そのプッシュブランチから)作るの宛先ブランチへのリクエストを引っ張ります元のレポの理論的には

forking


、あなただけの1 upstream repoを使用することができますが、それはプッシュ/マージに対して枝を保護するためにgitoliteようauthorization layerを必要とします。
Github(ブランチを保護しない)、BitBucket(ブランチを保護するがマージを防ぐ)、GitLab(BitBucketと同じ)では利用できません。

これはいくつかの上流リポジトリで元のものと1つまたは複数のフォークを扱う方が簡単な理由です。

GitHub/BitBucket/GitLabはプルリクエストの周りに素敵なインターフェースを持ち、コメント付きのものを結びつけています。特定のプルリクエストを中心に通信とディスカッションがあります。

フォーク+プル要求は単に「Gitの道」ではない、それは本当に多くの貢献、which is why git was invented by Linus Torvalds in the first placeを統合するための最も便利な方法です。彼はLinuxカーネルのパッチのたくさん日の統合を支援します。


「保護されたブランチ」アプローチTippa Rajによってmentioned(と私は上記とは)それは人為的にあなたがすべてを制御する必要がの集中アプローチを、強制と同じように、私がお勧めするアプローチではありません:

  • 枝は、あなたが公開されることを可能にする
  • 枝を保護するために:1つのレポで、開発者はすべてその枝をプッシュするために誘惑されるだろう。

GitHubは、その理由で保護されたブランチを提供しません。
(実際は、2015年9月以降、「How to protect “master” in github?」を参照してください)
BitBucketとGitLabがその機能を提供しています。

個々のリポジトリは、authorization layerのようなgitoliteを追加して、ブランチ(フォルダとファイルまで)を管理し、保護することもできます。

しかし、機能ブランチを中心としたコラボレーションを促進するという点では、何の要求も引き出す​​ことはありません。

+0

ありがとう、それは非常に徹底的な答えです。私は複数の上流のリポジトリが手にあるケースのあまりにも遠い抽象であることを恐れています - いたずらなスティックで人々を打ち負かすのは簡単かもしれません。 –

+0

@Deejayいいえ、それはあまりにも遠い抽象ではありません、それは本当にgitのように*分散* VCSが動作するはずです。 – VonC

+1

@DeejayそしてそれはGitHub、BitBicketとGitLabの両方が "かなり共通の要求"に対応する方法です。 – VonC

2

フォークとマージ以外に、別の方法があります。

私はBitbucketとGithubについてはわかりませんが、Gitlabにはブランチを保護できる機能があります。したがって、 "支店ユーザー"以外の人がその支店に押し込むことはありません。したがって、開発者はフィーチャーブランチにプッシュでき、ブランチは「マスターユーザー」によってmasterブランチにマージされます

+0

Bitbucketには、支店の制限と同様のメカニズムがあります。https://blog.bitbucket.org/2013/09/16/take-control-with-branch-restrictions/ –

関連する問題