JetBrains Space ヘルプ

マージリクエスト

作業中のブランチをベースブランチ (メイン、マスター) にマージする前に、チームメイトに変更を調べて承認するよう招待するマージリクエストを作成できます。

マージリクエストは、次のことを可能にする特別な種類のコードレビューです。

  • 2 つのブランチを比較してください。

  • 競合がある場合は簡単に発見できます。

  • ブランチをマージするはレビューページから直接アクセスできます (リベースとスカッシュも同様)。

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

  1. コミットリストのグラフに従って、マージするブランチを見つけます。

  2. ブランチの最上位のコミットを選択します。

  3. 右側のペインで、「新しいマージリクエスト」をクリックします。

    mergeRequest.png

    マージリクエストのオプションを含むダイアログがポップアップ表示されます。

  4. ターゲットブランチ (マージ先のブランチ) を選択します。

    selectTargetBranch.png
  5. 説明を追加します (オプション):

    addDescriptionMergeRequest.png
    • 説明の追加をクリックします。

    • テキストフィールドに説明を入力するか、コミットメッセージからテキストをコピーするをクリックします。

    • Markdown を使用して、コミットメッセージに基づく説明を編集できます。

    このマージリクエストのタイトルを編集することもできます。

  6. レビュー担当者を割り当てます。

    addReviewerMergeRequest.png

    高品質のゲート保護の一環としてマージリクエストに特定のユーザーの承認が必要な場合、Space はレビュー担当者に承認を提案します。これらの推奨レビュー担当者を追加して承認を得てください。そうしないと、変更をマージできません。

    addQGReviewersMergeRequest.png
  7. マージリクエストの作成をクリックします。

    マージリクエストのコードレビューが作成されます。

    mergeRequestReviewCreated.png

    マージリクエストに、割り当てられたレビュー担当者が所有するファイルの変更が含まれている場合は、そのレビュー担当にすべての変更されたファイルを検査させるか、自分が所有するファイルのみを検査させるかを指定できます。

    mergeRequestAllOrOwnedFiles.png

    選択内容により、レビュー担当者が変更タブに最初に表示する内容が決まります。変更されたすべてのファイルか、コード所有者であるファイルのみが表示されます。

    コードの所有権は、リポジトリ用に構成できる CODEOWNERS ファイルに基づいています

  8. 次のことができるようになりました。

    • ブランチとターゲットのブランチを比較します

    • 自分のステータスを確認してください。

    • レビュー担当者のフィードバックに返信するか、リクエストが承認されたらマージに進みます。

マージリクエストを確認する

誰かがマージリクエストを確認して承認するように求めた場合は、他の人が行った変更を確認するで説明されている手順に従ってください。

さらに、次のことが必要になる場合があります。

  • 要求を承認する前にブランチとの比較

  • マージリクエストに含まれるすべてのファイルをレビューするか、自分が所有するファイルのみをレビューするかを選択します。

    コードの所有権は、リポジトリ用に構成できる CODEOWNERS ファイルに基づいています

    mergeRequestAllOrOwnedFilesReviewer.png
    • すべてのファイル — このオプションを選択すると、変更を承認するの場合、ファイルに追加の変更が加えられたときに承認がリセットされます。

      承認して確定するした場合、ステータスは最終的なままとなり、新しいコミットによってリセットされません。

    • 所有ファイル — このオプションを選択すると、変更を承認するの場合、後から追加された変更が所有するファイルに影響を与える場合にのみ、承認がリセットされます。自分が所有していないファイルに変更を加えても、ステータスはリセットされません。

      承認して確定するを実行した場合、影響を受けるファイルとは関係なく、ステータスは最終的なままになります。

ブランチとコミットを比較する

マージリクエストコードレビューのデフォルトの差分ビューには、ソースブランチ (レビュー対象のブランチ) の先頭とターゲットブランチの先頭の違いが表示されます。この差分ビューでは、左側のペインですべてのコミットを選択する必要があります。

mergeRequestDefaultDiff.png

自動的に解決できない競合がシステムによって検出された場合、警告が表示されます。

conflictsDetected.png

競合のあるファイルには赤い感嘆符のラベルが付けられます。競合するブランチは、すべての競合が手動で修正されるまでマージできません。

ソースブランチコミットをその親コミットと比較することもできます。これを行うには、左側のパネルで、比較するコミットのみを選択します。

ブランチはコミットリストから比較することもできます。

  1. コミットリストのグラフに従ってマージする必要があるブランチを見つけるか、ブランチに移動してブランチを開きます。

  2. ブランチの最上位のコミットを選択します。

  3. 右側のペインで、「デフォルトと比較する」をクリックします。

    clickCompareToDefault.png

    差分が表示されます。選択したブランチのヘッドとデフォルトのブランチのヘッドの違いが表示されます。

  4. 変更を確認し、競合がないか確認してください。

コード解析

プロジェクトが外部のコード分析ツールと統合されている場合、マージリクエスト内のすべての変更がインスペクションされ、マージリクエストページに概要が表示され、マージリクエストの差分でコードの課題がハイライトされます。

コード分析の概要は右側の詳細パネルに表示されます。

mergeRequestCodeAnalysisSummary.png

エラーのあるコード部分は、マージリクエストの差分で赤い波線で下線が引かれます。行をクリックすると、エラーの説明が表示されます。

mergeRequestCodeAnalysisDiff.png

ステータスを確認する

マージリクエストを含むコードレビューでは、参加者が順番にプロセスを明確かつ秩序正しく保つように努めます。右側のパネルの自分の名前にあるステータスインジケーターにより、待つべきか行動を起こすべきかがわかります。

authorStatusWaiting.png

灰色は、アクションが必要ないことを示します。レビュー担当者の順番が終了するまで待ちます。

authorStatusRevising.png

オレンジ色はあなたの番であることを示しており、次のようなアクションを実行することが期待されています。

  • 査読者によって投稿されたコメントに返信します。

  • 追加の変更または修正をコミットします。

完了したら、右上隅にある提案されたアクションをクリックしてステータスを変更し、レビュー担当者に順番を渡します。

authorStatusEnd.png

名前にある空白のステータスは、レビューが完了し、ブランチをマージできることを示します。マージボタンをクリックしてブランチをマージし、レビューを閉じます。

査読者の承認

レビュー担当者が変更を受け入れると、チャットで通知されます。解決策はレビューページのタイムラインタブにも掲載され、ユーザーアイコン (緑色で囲まれます) に示されます。

mergeRequestApproved.png

結合オプション

レビュー担当者がリクエストを受け入れるとすぐに、Space インターフェースから直接ブランチをデフォルトのブランチにマージできます。

次のオプションがあります。

  • マージ — マージコミットを使用して、ブランチをデフォルトのブランチにマージします。

  • リベース — マージコミットを行わずに、ブランチをデフォルトのブランチの先端に移動します。

  • リベースとスカッシュ — ブランチからのすべてのコミットを 1 つのコミットに結合し、それをデフォルトのブランチの先端に移動します。

統合後にブランチを保持するか削除するかを選択することもできます。

ブランチをマージする

このオプションを使用すると、マージコミットを使用して、機能ブランチからのすべてのコミットをデフォルトのブランチに追加できます。

  1. レビューページを開いて、「マージ」をクリックします。

  2. マージを選択します。

    mergeOptionsMerge.png
  3. 結合後にブランチを削除する場合は、対応するチェックボックスを選択します。

  4. マージをクリックします。

    ブランチはデフォルトのブランチにマージされ、すべてのコミットの履歴はそのまま残ります。

    mergeBeforeAfter.png

ブランチをマージした後、レビューを閉じることができます。

ブランチをリベースしてマージする

このオプションを使用すると、フィーチャーブランチをデフォルトのブランチにマージする前にリベースできます。フィーチャーブランチのすべてのコミットは、マージコミットなしでデフォルトのブランチの先端に追加されます。

マージ後にブランチを削除することも選択できます。

  1. レビューページを開いて、「マージ」をクリックします。

  2. リベースを選択:

    mergeOptionsRebase.png
  3. 結合後にブランチを削除する場合は、対応するチェックボックスを選択します。

  4. マージをクリックします。

    ブランチはリベースされ、マージコミットなしでデフォルトのブランチにマージされます。コミット履歴が書き換えられ、線形のコミットグラフが生成されます。

    rebaseBeforeAfter.png

ブランチをマージした後、レビューを閉じることができます。

ブランチをスカッシュ、リベース、マージする

このオプションを使用すると、機能ブランチを単一のコミットに圧縮し、デフォルトのブランチにマージされる前にリベースできます。フィーチャーブランチのすべてのコミットは 1 つに結合され、マージコミットなしでデフォルトのブランチの先端に追加されます。

マージ後にブランチを削除することも選択できます。

  1. レビューページを開いて、「マージ」をクリックします。

  2. リベースとスカッシュを選択:

    mergeOptionsSquashRebase.png
  3. 潰されたコミットのコミットメッセージを入力します。

  4. 結合後にブランチを削除する場合は、対応するチェックボックスを選択します。

  5. マージをクリックします。

    ブランチは単一のコミットに圧縮され、リベースされて、マージコミットを適用せずにデフォルトのブランチにマージされます。コミット履歴が書き換えられるため、コミットグラフが線形になり、コミット数が減ります。

    squashBeforeAfter.png

ブランチをマージした後、レビューを閉じることができます。

関連ページ:

ブランチとマージ制限のセットアップ

プロジェクトロールを使用すると、リポジトリでの書き込み権限と読み取り権限を管理できますが、それだけではコードの品質と効率的なコラボレーションを確保するには不十分な場合があります。ブランチ保護設定を使用すると、リポジトリ全体に過剰な制限を課すことなく、重要なブランチを不注意な操作や望ましくない変更から保護できます。特定のブランチのセキュリティルールを作成すると、次のことが可能になります。誤ってブランチが削除されるのを防ぎます。ブランチをプッシュまたは強制的にプッシュできる人を制限します。ブランチに...

コードの所有者

コード所有者は、コードベースの特定の部分を担当するメンバーです。コード所有者は、という名前の特別なファイルに定義され、表示されます。責任リストを使用すると、プロジェクトのさまざまな部分の担当者を広範囲に把握できますが、CODEOWNERS ファイルを使用すると、リポジトリ内の特定のパスまたはファイルについて質問がある場合の連絡先を見つけることができます。さらに、CODEOWNERS ファイルを使用すると、品質ゲートとしてコード所有者の承認が必要な保護されたブランチへのマージリクエストを効率化する...

コメントと提案された変更

すべてのコードレビュー参加者は、コメントを投稿してレビュー内で変更について話し合ったり、他の人が残したコメントに返信したりできます。マージリクエストをレビューするときに、コードを編集し、編集内容を提案として投稿することもできます。レビューページに投稿されたコメントは、専用チャンネルの参加者のチャットにも表示されます。ディスカッションが開始されたら、チャットまたはレビューから続行できます。すべてのコメントと返信は同期されます。コメントの種類:投稿できるコメントには次の 2 種類があります。レビュ...

他の人が行った変更を確認する

レビュー担当者は通常、次の一連のタスクを実行します。レビューに移動して変更を調べます。フィードバックを残してディスカッションに参加してください。必要に応じて、他の参加者を招待します。変更を受け入れてレビューを完了します。誰かが変更をレビューするようにあなたを招待すると、レビューへの直接リンクを含む通知がチャット (レビュータブの下) に届きます。リンクをクリックしてレビューページに進みます。レビューページでは、ユーザーアイコンにステータスインジケーターが表示されます。オレンジ色で変更点の確認と表示...

コミット履歴の表示

リポジトリ内の変更履歴を表示するには: プロジェクトに移動するをクリックして、興味のあるリポジトリを開きます。コミット数を選択:、最近のリビジョンは時系列順にリストされ、コミット、ブランチ、マージの履歴を視覚化するのに役立つコミットグラフが付いています。各エントリには次の内容が含まれます。コミッターのアバター (もしあれば)、コミッターのユーザー名、コミットメッセージ:、コミットタイムスタンプ (カーソルを合わせると、コミットの正確な日付と時刻が表示されます)、また、次のことも表示される場合があり...

コード分析ツールの統合

CI サーバーが SARIF フォーマット済みレポートのエクスポートをサポートするコード分析ツールを使用している場合、それを Space と統合して、静的コード分析結果を Space merge request diffs に表示できます。Space HTTP API には、変更されたコードフラグメントのコード分析ツールによって生成された形式のファイルとしてコード分析レポートを受け入れることができる専用のエンドポイントがあります。統合を設定する方法は、CI サーバーとコード分析ツールの詳細によって...