プルリクエストのマージについて
プルリクエストでは、head ブランチに加えた変更をベースブランチにマージすることを提案します。 デフォルトでは、head ブランチがベースブランチとコンフリクトしていない限り、どのプルリクエストもいつでもマージできます。 ただし、プルリクエストを特定のブランチにマージできるタイミングには制限がある場合があります。 たとえば、必須のステータスチェックに合格した場合にのみ、プルリクエストをデフォルトブランチにマージできます。 詳しい情報については保護されたブランチについてを参照してください。
すべてのマージの要件が満たされたときに、自動的にマージされるようにPull Requestを設定できます。 詳しい情報については「Pull Requestの自動マージ」を参照してください。
プルリクエストでマージコンフリクトが発生する場合、またはマージの前に変更をテストしたい場合は、コマンドラインを使用して、プルリクエストをローカルでチェックアウトしてマージすることができます。
ドラフトのプルリクエストをマージすることはできません。 ドラフトのプルリクエストに関する詳しい情報については「プルリクエストについて」を参照してください。
プルリクエストがリポジトリにマージされた後、head ブランチを自動的に削除することができます。 詳しい情報については「ブランチの自動削除の管理」を参照してください。
トピックブランチでの変更を上流ブランチにマージしたくなければ、マージせずにプルリクエストをクローズすることができます。
GitHub でプルリクエストをマージする
-
リポジトリ名の下にある Pull requests(プルリクエスト)をクリックしてください。

-
[Pull Requests] リストで、マージしたいプルリクエストをクリックします。
-
リポジトリで有効なマージオプションに応じて、以下の操作が可能です:
- [Merge pull request] をクリックして、すべてのコミットをベース ブランチにマージします。 [Merge pull request] オプションが表示されない場合は、マージのドロップダウン メニューをクリックして [Create a merge commit] をクリックします。
![[Merge pull request] ボタン](/web/20210416120814im_/https://docs.github.com/assets/images/help/pull_requests/pullrequest-mergebutton.png)
- 複数のコミットを 1 つのコミットに squash するには、マージのドロップダウン メニューをクリックして [Squash and merge] を選択し、[Squash and merge] ボタンをクリックします。
![[Squash and merge] ボタンをクリック](/web/20210416120814im_/https://docs.github.com/assets/images/help/pull_requests/select-squash-and-merge-from-drop-down-menu.png)
- コミットを個々にベース ブランチにリベースするには、マージのドロップダウンをクリックして [Rebase and merge] を選択し、[Rebase and merge] ボタンをクリックします。
![ドロップダウン メニューから [Rebase and merge] を選択](/web/20210416120814im_/https://docs.github.com/assets/images/help/pull_requests/select-rebase-and-merge-from-drop-down-menu.png)
メモ: リベースおよびコミットを行うと、常にコミッターの情報が更新され、新しいコミット SHA が作成されます。 詳細は「プルリクエストのマージについて」を参照してください。
- [Merge pull request] をクリックして、すべてのコミットをベース ブランチにマージします。 [Merge pull request] オプションが表示されない場合は、マージのドロップダウン メニューをクリックして [Create a merge commit] をクリックします。
-
要求されたら、コミットメッセージを入力するか、デフォルトのメッセージのままにします。
squashマージのデフォルトのコミットメッセージに関する情報については「プルリクエストのマージについて」を参照してください。

注釈: メールセレクタは、マージコミットを作成しないリベースマージ、またはプルリクエストを作成したユーザを squash コミットの作者としてクレジットする squash マージには使用できません。
- [Confirm merge]、[Confirm squash and merge] をクリックするか、[Confirm rebase and merge] をクリックします。
- また、代わりにブランチを削除することもできます。 こうすることで、リポジトリにあるブランチのリストが整理された状態を保てます。
プルリクエストをマージするとプルリクエストの head ブランチが自動的に削除されるようにリポジトリを設定できます。 詳しい情報については「ブランチの自動削除の管理」を参照してください。
注釈: プルリクエストがマージされた後にheadブランチを削除すると、GitHubは同じリポジトリ内に削除されたブランチをベースブランチと指定しているオープンなプルリクエストがないかをチェックします。 GitHubはそういったプルリクエストを自動的に更新し、ベースブランチをマージされたプルリクエストのベースブランチに変更します。 詳しい情報については、「ブランチについて」を参照してください。
プルリクエストは --no-ff オプションを使用してマージされますが、squash またはリベースされたコミットは例外で、fast-forward オプションを使用してマージされます。
Pull RequestをIssueにリンクして、修正が進んでいることを示すとともに、誰かがそのPull Requestをマージしたときに自動的にそのIssueをクローズさせることができます。 詳しい情報については「プルリクエストのIssueへのリンク」を参照してください。