マージリクエストワークフロー
GitLabでマージリクエストフローを作成するには、主に2つの方法があります。
- 単一のリポジトリで保護されたブランチを扱う方法。
- 権威あるプロジェクトのフォークでの作業。
保護されたブランチフロー
保護ブランチフローでは、全員が同じGitLabプロジェクト内で作業します。
プロジェクトのメンテナーにはメンテナーのロールが与えられ、通常の開発者には開発者のロールが与えられます。
メンテナーは権威ブランチを ‘Protected’ としてマークします。
開発者は機能ブランチをプロジェクトにプッシュし、その機能ブランチをレビューして保護ブランチのひとつにマージするためにマージリクエストを作成します。
デフォルトでは、メンテナーのロールを持つユーザーだけが変更内容を保護ブランチにマージできます。
利点
- プロジェクトが少ないので、散らかりません。
- 開発者は1つのリモートリポジトリだけを考慮すればよいのです。
デメリット
- 保護ブランチを手動で設定する必要があります。
フォークワークフロー
フォークワークフローでは、権威リポジトリに対して、メンテナーはメンテナーのロールを、通常の開発者はレポーターのロールを得ます。
開発者は権威プロジェクトのフォークを作成し、自分の機能ブランチを自分のフォークにプッシュします。
自分の変更をデフォルトブランチに反映させるには、フォーク間でマージリクエストを作成する必要があります。
利点
- 適切に設定された GitLab グループでは、新しいプロジェクトは自動的に通常の開発者に必要なアクセス制限を取得します。
デメリット
- プロジェクトはフォークを最新の状態に保つ必要があり、より高度なGitスキル(複数のリモートの管理)が必要になります。