# pull request のマージ

プル要求をアップストリーム ブランチにマージし、マージ方法を選択し、レビューや状態チェックなどのリポジトリ要件を満たします。

## プルリクエストのマージについて

提案された変更の準備が整い、リポジトリの要件が満たされたら、pull request をマージします。 ドラフトの pull request をマージすることはできません。

リポジトリのルールまたはブランチ保護では、マージ前にレビュー、ステータスチェック、または最新の状態のブランチが必要になる場合があります。 「[保護されたブランチについて](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)」を参照してください。

ブランチ保護規則の代わりに、ルールセットを作成できます。 ルールセットには、状態などのブランチ保護規則よりもいくつかの利点があり、管理者アクセスを必要とせずに検出可能性が向上します。 同時に複数のルールセットを適用することもできます。 詳しくは、「[ルールセットについて](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)」をご覧ください。

すべてのマージの要件が満たされたときに、自動的にマージされるようにPull Requestを設定できます。 詳しくは、「[プルリクエストを自動的にマージする](/ja/pull-requests/how-tos/merge-and-close-pull-requests/automatically-merging-a-pull-request)」をご覧ください。

ベース ブランチにマージ キューが必要な場合、使用可能なマージ オプションはここで説明されているものとは異なります。 「[pull request とマージ キューのマージ](/ja/pull-requests/how-tos/merge-and-close-pull-requests/merging-a-pull-request-with-a-merge-queue)」を参照してください。

pull request にマージ競合がある場合、または最初に変更をテストする場合は、 [pull request をローカルでチェックアウト](/ja/pull-requests/how-tos/review-pull-requests/checking-out-pull-requests-locally)します。

リポジトリでは、マージ後にヘッド ブランチが自動的に削除される場合があります。 「[ブランチの自動削除を管理する](/ja/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-the-automatic-deletion-of-branches)」を参照してください。

> \[!NOTE]
> プルリクエストがマージされた後にheadブランチを削除すると、GitHubは同じリポジトリ内に削除されたブランチをベースブランチと指定しているオープンなプルリクエストがないかをチェックします。 GitHubはそういったプルリクエストを自動的に更新し、ベースブランチをマージされたプルリクエストのベースブランチに変更します。

プル リクエストでは [the `--no-ff` option](https://git-scm.com/docs/git-merge#_fast_forward_merge) オプションが使用されます。ただし、squash または rebase されたプル リクエストでは、fast-forward マージが使用されます。

プル要求を問題にリンクして、修正プログラムが進行中であることを示し、pull request がマージされたときに問題を自動的に閉じます。 詳しくは、「[プルリクエストを課題にリンクする](/ja/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue)」をご覧ください。

変更をマージしない場合は、 [pull request を閉じて](/ja/pull-requests/how-tos/merge-and-close-pull-requests/closing-a-pull-request)ください。

## pull request のマージ

<div class="ghd-tool webui">

1. リポジトリ名の下にある \[**pull requests]\(プル要求<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-pull-request" aria-label="git-pull-request" role="img"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>** をクリックします。

2. \[Pull Requests]\(プル要求) の一覧で、マージする pull request をクリックします。

3. プルリクエストの一番下までスクロールしてください。 リポジトリで有効になっているマージ オプションに応じて、マージ方法を選択します。

   * \[[プル要求](/ja/pull-requests/reference/pull-request-merges)のマージ] をクリックして、**すべてのコミットをベース ブランチ**にマージします。 オプションが表示されない場合は、マージ ドロップダウン メニューをクリックし、\[ **マージ コミットの作成**] を選択します。

     ![pull request の \[マージ\] セクションのスクリーンショット。 ドロップダウンを展開する矢印が濃いオレンジ色の枠線で囲まれています。](/assets/images/help/pull_requests/merge-pull-request-options.png)

   * \[マージ] ドロップダウン メニューをクリックし、\[スカッシュとマージ] を選択し、\[[スカッシュとマージ](/ja/pull-requests/reference/pull-request-merges#squash-and-merge-your-commits)] をクリックして、**コミットを 1 つのコミット**に**スカッシュ**します。

   * [コミットを 1 つずつベース ブランチにリベースするには](/ja/pull-requests/reference/pull-request-merges#rebase-and-merge-your-commits)、マージのドロップダウン メニューをクリックし、**Rebase and merge** を選択して、次に **Rebase and merge** をクリックします。

   > \[!NOTE]
   > リベースとコミットを行うと、常にコミッターの情報が更新され、新しいコミット SHA が作成されます。
   > [プル要求のマージについて](/ja/pull-requests/reference/pull-request-merges#rebase-and-merge-your-commits)を参照してください。

4. 要求されたら、コミットメッセージを入力するか、デフォルトのメッセージのままにします。

   スカッシュ マージの既定のコミット メッセージについては、「[プル要求のマージ](/ja/pull-requests/reference/pull-request-merges#merge-message-for-a-squash-merge)」をご覧ください。

5. GitHubのアカウントに複数のメール アドレスが関連付けられている場合は、メール アドレスのドロップダウン メニューをクリックし、Git 作成者のメール アドレスとして使用するメール アドレスを選択します。 このドロップダウンメニューには、検証済みのメールアドレスだけが表示されます。 メール アドレスのプライバシーを有効にした場合は、no-reply がコミット作成者の既定のメール アドレスになります。 no-reply メール アドレスの正確な形式の詳細については、「[コミットメールアドレスを設定する](/ja/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address)」を参照してください。

![GitHub pull request のスクリーンショット。コミット作成者のメール アドレスを選ぶためのオプションを含む、ドロップダウン メニューが表示されています。
octocat@github.com が選択されています。](/assets/images/help/repository/choose-commit-email-address.png)

> \[!NOTE]
> 電子メール セレクターは、マージコミットを作成しないリベースマージには使用できません。 スカッシュマージでは、メールアドレス選択欄は、あなたがプルリクエストの作成者であり、かつアカウントに複数のメールアドレスが関連付けられている場合にのみ表示されます。

1. **\[マージを確認する]** 、 **\[スカッシュとマージを確認する]** または **\[リベースとマージを確認する]** をクリックします。
2. 必要に応じて、[ブランチを削除](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/deleting-and-restoring-branches-in-a-pull-request)します。 こうすることで、リポジトリにあるブランチのリストが整理された状態を保てます。

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> GitHub CLI の詳細については、「[GitHub CLI について](/ja/github-cli/github-cli/about-github-cli)」を参照してください。

pull request をマージするには、`gh pr merge` サブコマンドを使用します。
`pull-request` を、pull request の番号、URL、またはヘッド ブランチで置き換えます。

```shell
gh pr merge PULL-REQUEST
```

対話型のプロンプトに従って、マージを完了します。 「[プル要求のマージ](/ja/pull-requests/reference/pull-request-merges)」を参照してください。

または、フラグを使用して対話型のプロンプトをスキップすることができます。 たとえば、このコマンドはコミットをコミット メッセージ "my squash commit" で 1 つのコミットにスカッシュし、スカッシュされたコミットをベース ブランチにマージしてから、ローカルブランチとリモートブランチを削除します。

```shell
gh pr merge 523 --squash --body "my squash commit" --delete-branch
```

</div>

## 詳細については、次を参照してください。

* [プルリクエストをリバートする](/ja/pull-requests/how-tos/merge-and-close-pull-requests/reverting-a-pull-request)
* [GitHub Desktopでブランチを同期する方法](/ja/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/syncing-your-branch-in-github-desktop) の使用 GitHub Desktop
* [プル要求のマージ](/ja/pull-requests/reference/pull-request-merges)
* [プル リクエストをマージして閉じる](/ja/pull-requests/how-tos/merge-and-close-pull-requests)