正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

マージリクエストを作成する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

マージリクエストを作成する準備ができたら、ワークフローに合った方法を使用してください。マージリクエストを作成できます:

マージリクエストを作成すると、GitLabはプロジェクトのブランチ命名規則を適用します。マージリクエストをブランチに接続するには、ブランチ命名パターンに従ってください。

トップバーから

プロジェクトのトップバーからマージリクエストを作成できます:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 右上隅で、新規作成 ( plus ) と新しいマージリクエストを選択します。

マージリクエストリストから

マージリクエストのリストからマージリクエストを作成できます。

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左サイドバーで、コード > マージリクエストを選択します。
  3. 右上隅で、新しいマージリクエストを選択します。
  4. ソースブランチとターゲットブランチを選択し、ブランチを比較して続行するを選択します。
  5. 新しいマージリクエストページのフィールドに必要事項を入力し、マージリクエストを作成を選択します。

各ブランチを関連付けることができるのは、1つのオープンなマージリクエストのみです。このブランチのマージリクエストがすでに存在する場合、既存のマージリクエストへのリンクが表示されます。

イシューから

開発ワークフローで、すべてのマージリクエストにイシューが必要な場合、イシューから直接ブランチを作成することでスピードアップできます。新しいブランチと、後でそのマージリクエストは、このイシューに関連付けられているというマークが付きます。マージリクエストをマージすると、自動イシュークローズが無効にされていない限り、イシューは自動的に閉じられます。

イシューからの新規ブランチ

ブランチとマージリクエストを同時に作成するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. Plan > 作業アイテムを選択し、タイプ = Issueでフィルタリングして、目的のイシューを選択します。
  3. イシューの説明の一番下まで移動します。
  4. マージリクエストを作成 > マージリクエストとブランチを作成を選択します。
  5. ダイアログで、提案されたブランチ名をレビューします。これは、プロジェクトのブランチ名テンプレートに基づいています。
  6. オプション。ブランチ名がすでに使用されている場合、または別のブランチ名が必要な場合は、名前を変更します。
  7. ソースブランチまたはタグを選択します。
  8. マージリクエストを作成を選択します。

イシューからの既存ブランチ

前提条件:

  • ブランチがイシューにすでにリンクされている必要があります。
  • プロジェクトでマージリクエストを作成する権限が必要です。

ブランチが開発にすでにリンクされている場合に、マージリクエストを作成するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. Plan > 作業アイテムを選択し、タイプ = Issueでフィルタリングして、目的のイシューを選択します。
  3. 開発セクションで、リンクされているブランチを見つけます。
  4. ブランチアクションメニュー ( ellipsis_v ) を選択します。
  5. マージリクエストを作成を選択します。
  6. 新しいマージリクエストページのフィールドに必要事項を入力し、マージリクエストを作成を選択します。

マージリクエストフォームには、イシューにリンクするための適切なキーワードが事前に入力されています。

タスクから作成する

チームがイシューをタスクに分割する場合、タスクから直接ブランチを作成して、プロセスを高速化できます。新しいブランチと、後でそのマージリクエストは、このタスクに関連付けられているというマークが付きます。マージリクエストをマージすると、自動イシュークローズが無効にされていない限り、タスクは自動的に閉じられます。

タスクからの新規ブランチ

前提条件:

  • タスクを含むプロジェクトのデベロッパー、メンテナー、またはオーナーロールが必要です。

ブランチとマージリクエストを同時に作成するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. Plan > 作業アイテムを選択し、タイプ = タスクでフィルタリングして、目的のタスクを選択します。
  3. タスクの説明の一番下まで移動します。
  4. マージリクエストを作成を選択します。
  5. ダイアログで、提案されたブランチ名をレビューします。これは、プロジェクトのブランチ名テンプレートに基づいています。
  6. オプション。ブランチ名がすでに使用されている場合、または別のブランチ名が必要な場合は、名前を変更します。
  7. ソースブランチまたはタグを選択します。
  8. マージリクエストを作成を選択します。

タスクからの既存ブランチ

前提条件:

  • ブランチがタスクにすでにリンクされている必要があります。
  • プロジェクトでマージリクエストを作成する権限が必要です。

ブランチが開発にすでにリンクされている場合に、マージリクエストを作成するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. Plan > 作業アイテムを選択し、タイプ = タスクでフィルタリングして、目的のタスクを選択します。
  3. 開発セクションで、リンクされているブランチを見つけます。
  4. ブランチアクションメニュー ( ellipsis_v ) を選択します。
  5. マージリクエストを作成を選択します。
  6. 新しいマージリクエストページのフィールドに必要事項を入力し、マージリクエストを作成を選択します。

マージリクエストフォームには、タスクにリンクするための適切なキーワードが事前に入力されています。

Gitリポジトリが空の場合

Gitリポジトリが空の状態でイシューまたはタスクからマージリクエストを作成した場合、GitLabは次の処理を行います:

  • デフォルトブランチを作成します。
  • 空白のREADME.mdファイルをコミットします。
  • イシューまたはタスクのタイトルに基づいて新しいブランチを作成し、そのブランチにリダイレクトします。
  • プロジェクトがKubernetesのようなデプロイサービスで構成されている場合、.gitlab-ci.ymlファイルを作成するのに役立つ自動デプロイの設定を促します。

イシューとタスクの自動クローズ

作成するブランチの名前がイシューまたはタスク番号でプレフィックスされている場合、GitLabはイシューまたはタスクとマージリクエストをクロスリンクし、マージリクエストの説明にクローズパターンを追加します。ほとんどの場合、これはCloses #IDのようになり、IDはイシューまたはタスクのIDです。プロジェクトがクローズパターンで構成されている場合、マージリクエストがマージされると、イシューまたはタスクは閉じられます。

Webエディタから

Webエディタを使用すると、以下の際にマージリクエストを作成できます:

  • ファイルを作成、編集、アップロード、または削除する。
  • ディレクトリを作成する。

ブランチを作成する場合

ブランチを作成する際、マージリクエストを作成できます。

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左サイドバーで、コード > ブランチを選択します。
  3. ブランチ名を入力して、新しいブランチを選択します。
  4. ファイルリストの上にあるマージリクエストの作成を選択します。マージリクエストが作成されます。デフォルトブランチがターゲットです。
  5. フィールドに入力し、マージリクエストの作成を選択します。

フォークで作業する場合

フォークからマージリクエストを作成して、メインプロジェクトにコントリビュートできます。

  1. トップバーで検索または移動先を選択し、フォークを見つけます。

  2. 左サイドバーで、コード > マージリクエストを選択し、新しいマージリクエストを選択します。

  3. ソースブランチに対しては、変更を含むフォーク内のブランチを選択します。

  4. ターゲットブランチの場合:

    1. フォークではなく、アップストリームリポジトリを選択します。アップストリームに頻繁にコントリビュートする場合は、フォークのデフォルトターゲットを設定することを検討してください。

    2. アップストリームリポジトリからブランチを選択します。

      ブランチの選択

    フォークの表示レベルが親リポジトリよりも制限されている場合、ターゲットブランチはフォークのデフォルトブランチになります。これにより、フォーク内のプライベート情報が公開されることがなくなります。

  5. ブランチを比較して続行するを選択します。

  6. マージリクエストを作成を選択します。マージリクエストは、フォークではなく、ターゲットリポジトリに作成されます。

  7. デベロッパー、メンテナー、またはオーナーロールが割り当てられている場合は、希望するアサイン担当者、レビュアー、ラベル、およびマイルストーンを追加します。

  8. マージリクエストを送信を選択します。

マージリクエストが別のリポジトリをターゲットとする場合、次が使用されます。

  • ターゲットプロジェクトの承認ルール。
  • フォークのCI/CD設定、リソース、およびプロジェクトCI/CD変数。

アップストリームプロジェクトでCI/CDパイプラインを実行するには、そのプロジェクトのメンバーである必要があります。フォークからのマージリクエストに対し、親プロジェクトでマージリクエストパイプラインを実行すると、すべての変数がパイプラインで利用可能になります。

作業がマージされ、それ以上のコントリビューションを行う予定がない場合は、フォークとそのアップストリームリポジトリとのリンクを解除します

デフォルトのターゲットプロジェクトを設定する

デフォルトでは、フォークから送信されたマージリクエストは、フォークではなくアップストリームリポジトリをターゲットとします。アップストリームリポジトリではなく、フォークされたリポジトリをデフォルトのターゲットとして設定できます。

前提条件:

  • フォークで作業している。
  • デベロッパー、メンテナー、またはオーナーロールを持っているか、プロジェクトでマージリクエストを作成することを許可されている必要があります。
  • アップストリームリポジトリでマージリクエストを作成できる。
  • フォークの表示レベル設定の厳格度が、アップストリームリポジトリ以下である。例: フォークがプライベートで、アップストリームがパブリックの場合、この設定は表示されません。

これを行うには、次の手順を実行します:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > マージリクエストを選択します。
  3. ターゲットプロジェクトセクションで、デフォルトのターゲットプロジェクトに使用するオプションを選択します。
  4. 変更を保存を選択します。

メールを送信する

メールメッセージをGitLabに送信することにより、マージリクエストを作成できます。マージリクエストのターゲットブランチは、リポジトリのデフォルトブランチです。

前提条件:

  • マージリクエストが、アップストリームリポジトリではなく、現在のリポジトリをターゲットとしている。
  • GitLab 管理者が、受信メールを設定している。この設定はGitLab.comで有効になっています。
  • GitLab 管理者が、メールによる返信を設定している。この設定はGitLab.comで有効になっています。
  • デベロッパー、メンテナー、またはオーナーロールを持っているか、プロジェクトでマージリクエストを作成することを許可されている必要があります。

メールを送信してマージリクエストを作成するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。

  2. 左サイドバーで、コード > マージリクエストを選択します。

  3. プロジェクトにマージリクエストが含まれている場合は、Email merge request to this projectを選択します。

  4. ダイアログで、表示されているメールアドレスをコピーします。このアドレスをプライベートにしてください。それを持っている人は誰でも、本人になりすましたり、イシューとマージリクエストを作成したりできます。

  5. メールを開き、次の情報を含むメッセージを作成します。

    • 宛先は、コピーしたメールアドレスです。
    • 件名は、ソースブランチ名です。
    • メールの本文は、マージリクエストの説明です。
  6. コミットを追加するには、.patchファイルをメッセージに添付します。

  7. メールを送信します。

マージリクエストが作成されます。

メールでマージリクエストを作成する際に添付ファイルを追加する

パッチをメールの添付ファイルとして追加することにより、マージリクエストにコミットを追加します。

  • パッチの合計サイズは2 MB以下である必要があります。
  • パッチと見なされるには、添付ファイルのファイル名の最後が.patchである必要があります。
  • パッチは、名前順に処理されます。
  • 件名からのソースブランチが存在しない場合、リポジトリのHEAD、またはデフォルトのターゲットブランチから作成されます。ターゲットブランチを手動で変更するには、/target_branchクイックアクションを使用します。
  • ソースブランチがすでに存在する場合、パッチがその上に適用されます。

トラブルシューティング

イシューでマージリクエストを作成するオプションがない

マージリクエストオプションがイシューに表示されないのは、次のような場合です。

  • 同じ名前のブランチがすでに存在する。
  • このブランチのマージリクエストがすでに存在している。
  • プロジェクトにアクティブなフォーク関係がある。
  • プロジェクトがプライベートで、イシューが機密である。

このボタンを表示するために考えられる回避策の1つは、プロジェクトのフォーク関係を削除すること削除後、フォーク関係を復元することはできません。プロジェクトでは、ソースプロジェクト、またはその他のフォークとの間でマージリクエストを送受信できなくなります。

メールメッセージを処理できませんでした

マージリクエストを作成するためにメールを送信し、アップストリームリポジトリをターゲットにしようとすると、GitLabがこのエラーメッセージを返します。

Unfortunately, your email message to GitLab could not be processed.

You are not allowed to perform this action. If you believe this is in error, contact a staff member.