Skip to main content

pull request のマージ

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

Tool navigation

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

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

リポジトリのルールまたはブランチ保護では、マージ前にレビュー、ステータスチェック、または最新の状態のブランチが必要になる場合があります。 「保護されたブランチについて」を参照してください。

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

すべてのマージの要件が満たされたときに、自動的にマージされるようにPull Requestを設定できます。 詳しくは、「プルリクエストを自動的にマージする」をご覧ください。

ベース ブランチにマージ キューが必要な場合、使用可能なマージ オプションはここで説明されているものとは異なります。 「pull request とマージ キューのマージ」を参照してください。

pull request にマージ競合がある場合、または最初に変更をテストする場合は、 pull request をローカルでチェックアウトします。

リポジトリでは、マージ後にヘッド ブランチが自動的に削除される場合があります。 「ブランチの自動削除を管理する」を参照してください。

メモ

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

プル リクエストでは the --no-ff option オプションが使用されます。ただし、squash または rebase されたプル リクエストでは、fast-forward マージが使用されます。

プル要求を問題にリンクして、修正プログラムが進行中であることを示し、pull request がマージされたときに問題を自動的に閉じます。 詳しくは、「プルリクエストを課題にリンクする」をご覧ください。

変更をマージしない場合は、 pull request を閉じてください。

pull request のマージ

  1. リポジトリ名の下にある [Pull requests] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[pull request] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

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

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

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

      pull request の [マージ] セクションのスクリーンショット。 ドロップダウンを展開する矢印が濃いオレンジ色の枠線で囲まれています。

    • [マージ] ドロップダウン メニューをクリックし、[スカッシュとマージ] を選択し、[スカッシュとマージ] をクリックして、コミットを 1 つのコミットスカッシュします。

    • コミットを 1 つずつベース ブランチにリベースするには、マージのドロップダウン メニューをクリックし、Rebase and merge を選択して、次に Rebase and merge をクリックします。

    メモ

    リベースとコミットを行うと、常にコミッターの情報が更新され、新しいコミット SHA が作成されます。 プル要求のマージについてを参照してください。

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

    スカッシュ マージの既定のコミット メッセージについては、「プル要求のマージ」をご覧ください。

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

GitHub pull request のスクリーンショット。コミット作成者のメール アドレスを選ぶためのオプションを含む、ドロップダウン メニューが表示されています。
octocat@github.com が選択されています。

メモ

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

  1. [マージを確認する][スカッシュとマージを確認する] または [リベースとマージを確認する] をクリックします。
  2. 必要に応じて、ブランチを削除します。 こうすることで、リポジトリにあるブランチのリストが整理された状態を保てます。

メモ

GitHub CLI の詳細については、「GitHub CLI について」を参照してください。

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

gh pr merge PULL-REQUEST

対話型のプロンプトに従って、マージを完了します。 「プル要求のマージ」を参照してください。

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

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

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