プルリクエストのマージについて
プルリクエストでは、head ブランチに� えた変更をベースブランチにマージすることを提案します。 デフォルトでは、head ブランチがベースブランチとコンフリクトしていない限り、どのプルリクエストもいつでもマージできます。 た� し、プルリクエストを特定のブランチにマージできるタイミングには制限がある� �合があります。 たとえば、必� �のステータスチェックに合� �した� �合にのみ、プルリクエストをデフォルトブランチにマージできます。 詳細については、「保護されたブランチについて」を参照してく� さい。
すべてのマージの要件が満たされたときに、自動的にマージされるようにPull Requestを設定できます。 詳細については、「pull request を自動的にマージする」を参照してく� さい。
pull request でマージ コンフリクトが発生する� �合、またはマージの前に変更をテストしたい� �合は、コマンドラインを使用して、pull request をローカルでチェックアウトしてマージすることができます。
ドラフトのプルリクエストをマージすることはできません。 pull request の詳細については、「pull requests について」を参照してく� さい。
プルリクエストをマージするとプルリクエストの head ブランチが自動的に削除されるようにリポジトリを設定できます。 詳細については、「ブランチの自動削除を管理する」を参照してく� さい。
注: プルリクエストがマージされた後にheadブランチを削除すると、GitHubは同じリポジトリ内に削除されたブランチをベースブランチと指定しているオープンなプルリクエストがないかをチェックします。 GitHubはそういったプルリクエストを自動的に更新し、ベースブランチをマージされたプルリクエストのベースブランチに変更します。 詳細については、「ブランチについて」を参照してく� さい。
pull request は、高速転送オプションを使用してマージされる、スカッシュまたはリベースされるコミットを含む pull request を除き、 --no-ff
オプションを使用してマージされます。
pull request をイシューにリンクして、修正が進行中であることを示し、誰かが pull request をマージしたときイシューを自動的にクローズすることができます。 詳細については、「pull request を Issue にリンクする」を参照してく� さい。
トピック ブランチでの変更を上流ブランチにマージしない� �合は、マージせずに pull request をクローズすることができます。
プル要求のマージ
-
リポジトリ名の下にある [pull request] をクリックします。
-
[Pull Requests] リストで、マージしたいプルリクエストをクリックします。
-
リポジトリで有効なマージオプションに応じて、以下の操作が可能です:
- [pull request をマージする] をクリックして、すべてのコミットをベース ブランチにマージします。 [pull request をマージする] オプションが表示されていない� �合は、マージのドロップダウン メニューをクリックして [マージ コミットの作成] をクリックします。
- [マージ] ドロップダウン メニューをクリックし、 [スカッシュとマージ] を選択し、 [スカッシュとマージ] ボタンをクリックして、コミットを 1 つのコミットにスカッシュします。
- マージ ドロップダウン メニューをクリックし、 [リベースとマージ] を選択し、 [リベースとマージ] ボタンをクリックして、コミットをベース ブランチに個別にリベースします。
注: リベースおよびコミットを行うと、常にコミッターの情� �が更新され、新しいコミット SHA が作成されます。 詳細については、「pull request のマージについて」を参照してく� さい。
-
要求されたら、コミットメッセージを入力するか、デフォルトのメッセージのままにします。
スカッシュ マージの既定のコミット メッセージの詳細については、「pull request のマージについて」を参照してく� さい。
注: メール セレクターは、マージ コミットを作成しないリベース マージ、または pull request を作成したユーザーをスカッシュ コミットの作者としてクレジットするスカッシュ マージには使用できません。
- [マージを確認する] 、 [スカッシュとマージを確認する] または [リベースとマージを確認する] をクリックします。
- 必要に応じて、ブランチを削除します。 こうすることで、リポジトリにあるブランチのリストが整理された状態を保てます。
GitHub CLI の詳細については、「GitHub CLI について」を参照してく� さい。
pull request をマージするには、gh pr merge
サブコマンドを使用します。 pull-request
を、pull request の番号、URL、またはヘッド ブランチと置き換えます。
gh pr merge pull-request
対話型のプロンプトに従って、マージを完了します。 選択できるマージ メソッドの詳細については、「pull request のマージについて」を参照してく� さい。
または、フラグを使用して対話型のプロンプトをスキップすることができます。 たとえば、このコマンドはコミット メッセージ "my squash commit" を使用してコミットを 1 つのコミットにスカッシュし、スカッシュされたコミットをベース ブランチにマージしてから、ローカルおよびリモート ブランチを削除します。
gh pr merge 523 --squash --body "my squash commit" --delete-branch
参考資料
- Pull Request を打ち消す
- GitHub Desktop を使用したブランチの同期
- pull request のマージについて
- マージコンフリクトへの対処