

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プルリクエストをマージする
<a name="pull-requests-merge"></a>

コードがレビューされ、すべての必須のレビュアーが承認したら、サポートされるマージ戦略 (早送りなど) を使用して CodeCatalyst コンソールでプルリクエストをマージできます。CodeCatalyst コンソールでサポートされるすべてのマージ戦略を、すべてのプルリクエストの選択肢として利用できるわけではありません。CodeCatalyst はマージを評価し、ソースブランチをターゲットブランチにマージできるマージ戦略のみをコンソールで選択できるようにします。ローカルコンピュータまたは開発環境で **git merge** コマンドを実行してソースブランチをターゲットブランチにマージすると、選択した Git マージ戦略でプルリクエストをマージできます。その後、ターゲットブランチの変更を CodeCatalyst のソースリポジトリにプッシュできます。

**注記**  
ブランチをマージして Git に変更をプッシュしても、プルリクエストは自動的には閉じられません。

プロジェクト管理者ロールがある場合は、承認と承認ルールのすべての要件を満たしていないプルリクエストをマージすることもできます。

## プルリクエストをマージする (コンソール)
<a name="pull-requests-merge-console"></a>

ソースブランチとターゲットブランチの間にマージ競合がなく、すべての必須のレビュアーがプルリクエストを承認している場合、CodeCatalyst コンソールでプルリクエストをマージできます。競合がある場合、またはマージを完了できない場合は、マージボタンが非アクティブになり、**[マージ不可]** ラベルが表示されます。この場合、必要な承認者から承認を取得し、必要に応じてローカルで競合を解決して、それらの変更をプッシュしてから、マージする必要があります。プルリクエストをマージすると、プルリクエストの作成者、および必須または任意のレビュアーに E メールが自動的に送信されます。プルリクエストにリンクされた問題が自動的に閉じられたり、ステータスが変更されたりすることはありません。

**ヒント**  
プロファイルの一部として、E メールを受信するプルリクエストイベントを設定できます。詳細については、「[CodeCatalyst からの Slack 通知および E メール通知を送信する](notifications-manage.md)」を参照してください。<a name="pull-requests-merge-console"></a>

**プルリクエストをマージするには**

1. プルリクエストをマージするプロジェクトに移動します。

1. プロジェクトページの **[未解決のプルリクエスト]** で、マージするプルリクエストを選択します。プルリクエストが表示されない場合は、**[すべてのプルリクエストを表示]** を選択し、リストから選択します。または、ナビゲーションペインで、**[コード]** を選択し、**[プルリクエスト]** を選択して、マージするプルリクエストを選択します。[**Merge (マージ)**] を選択します。

1. プルリクエストに使用可能なマージ戦略のいずれかを選択します。必要に応じて、プルリクエストをマージした後にソースブランチを削除するオプションを選択または選択解除し、**[マージ]** を選択します。
**注記**  
**マージ**ボタンが非アクティブな場合、または **[マージ不可]** ラベルが表示されている場合は、必須のレビュアーがプルリクエストをまだ承認していないか、プルリクエストを CodeCatalyst コンソールでマージできません。プルリクエストを承認していないレビュアーは、**[概要]** の **[プルリクエストの詳細]** エリアに時計のアイコンで示されます。すべての必須のレビュアーがプルリクエストを承認しても**マージ**ボタンが非アクティブである場合、マージの競合が発生している可能性があります。下線付きの **[マージ不可]** ラベルを選択すると、プルリクエストをマージできない理由の詳細が表示されます。開発環境または CodeCatalyst コンソールでターゲットブランチのマージ競合を解決してからプルリクエストをマージするか、または競合を解決してローカルでマージし、マージを含むコミットを CodeCatalyst のソースブランチにプッシュできます。詳細については、「[プルリクエストのマージ (Git)](#pull-requests-merge-git)」および Git ドキュメントを参照してください。

## マージ要件を上書きする
<a name="pull-requests-merge-override"></a>

**プロジェクト管理者**ロールがある場合は、必要な承認と承認ルールのすべての要件を満たしていないプルリクエストをマージできます。これは、プルリクエストの要件の上書きと呼ばれます。必須のレビュアーが対応できない場合や、すぐには満たすことができない承認ルールがあるブランチに特定のプルリクエストをマージする必要が緊急に生じた場合に、これを行うことができます。<a name="pull-requests-merge-console"></a>

**プルリクエストをマージするには**

1. 要件を上書きしてマージするプルリクエストで、**マージ**ボタンの横にあるドロップダウン矢印を選択します。**[承認要件を上書きする]** を選択します。

1. **[オーバーライドの理由]** に、承認ルールと必須のレビュアーの要件を満たさずにこのプルリクエストをマージする理由の詳細を記入します。これはオプションですが、入力することを強くお勧めします。

1. 必要に応じてマージ戦略を選択するか、デフォルトを受け入れます。また、自動生成されたコミットメッセージを詳細に更新することもできます。

1. マージ時にソースブランチを削除するオプションを選択または選択解除します。プルリクエストのマージ要件を上書きする場合、他のチームメンバーと決定を確認する機会が得られるまでソースブランチを保持することをお勧めします。

1. [**Merge (マージ)**] を選択します。

## プルリクエストのマージ (Git)
<a name="pull-requests-merge-git"></a>

Git では、ブランチのマージと管理のための多くのオプションをサポートしています。コマンドで使用できる主なオプションの一部を次に示します。詳細については、[Git ウェブサイト](https://git-scm.com/doc)で入手できるドキュメントを参照してください。変更をマージしてプッシュしたら、プルリクエストを手動で閉じます。詳細については、「[プルリクエストを閉じる](pull-requests-close.md)」を参照してください。


**ブランチをマージするための一般的な Git コマンド**  

|  |  | 
| --- |--- |
|  ローカルリポジトリのソースブランチからの変更をローカルリポジトリのターゲットブランチにマージします。  |  `git checkout destination-branch-name` `git merge source-branch-name`  | 
|  早送りマージを指定して、ソースブランチをターゲットブランチにマージします。これにより、ブランチがマージされ、ターゲットブランチポインタがソースブランチの先端に移動します。  |  `git checkout destination-branch-name` `git merge --ff-only source-branch-name`  | 
|  スカッシュマージを指定して、ソースブランチをターゲットブランチにマージします。これにより、ソースブランチからのすべてのコミットが、ターゲットブランチの単一のマージコミットに結合されます。  |  `git checkout destination-branch-name` `git merge --squash source-branch-name`  | 
|  3 方向マージを指定して、ソースブランチをターゲットブランチにマージします。これにより、マージコミットが作成され、ソースブランチからターゲットブランチに個々のコミットが追加されます。  |  `git checkout destination-branch-name` `git merge --no-ff source-branch-name`  | 
|  ローカルリポジトリのソースブランチを削除します。これは、ターゲットブランチにマージして変更をソースリポジトリにプッシュした後、ローカルリポジトリのクリーンアップとして実行できます。  |  `git branch -d source-branch-name`  | 
|  ローカルリポジトリでリモートリポジトリに指定されたニックネームを使用して、リモートリポジトリのソースブランチ (CodeCatalyst のソースリポジトリ) を削除します。(コロン (`:`) の使用に注意してください)。または、コマンドの一部として `--delete` を指定します。  |  `git push remote-name :source-branch-name` `git push remote-name --delete source-branch-name`  | 