![[GitHub] BaseブランチにMerge済みの変更がPull Requestに反映されない時の対処](https://devio2023-media.developers.io/wp-content/uploads/2019/07/github-eyecatch.png)
[GitHub] BaseブランチにMerge済みの変更がPull Requestに反映されない時の対処
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、CX事業本部の若槻です。
今回は、GitHubでBaseブランチにMerge済みの変更がPull Requestに反映されない時の対処についてです。
Baseブランチの変更がPull Requestに反映されない
developをBaseブランチとするfeature1のPull Requestを作成しました。

さらに並行して、feature1をBaseブランチとするfeature2のPull Requestを作成しました。

ここでfeature1のレビューが完了したため、Pull RequestをdevelopにMergeしました。
その後feature2のPull Requestを見るとMergeしたはずのfeature1の変更が残ったままとなってしまっています。

図にすると、①→①'→①''→②→②’→②''→③の順で操作を行った状況となります。

原因
diffの計算に使用するBaseブランチの情報はPull Request作成時のものが使用されるためのようです。
対処方法
以下のいずれかの方法で対処できます。
方法1. Baseブランチを手動でMergeする
Gitコマンドを利用した方法です。ローカルでfeature2にリモートのdevelopをMergeし、Pushします。
% git checkout feature2 % git pull origin develop % git push origin feature2
するとfeature1の変更がPull Requestの履歴から消えました。

メリット
- Pull Requestを作り直す必要がない
 
デメリット
- Pull Requestの履歴にBaseブランチをMergeしたログが残る
 
方法2. Baseブランチを変更して戻す
画面操作を利用した方法です。
Pull Requestタイトル右の[Edit]をクリックします。

Baseブランチの選択でdevelop以外のブランチを選択します。

確認ダイアログで[Cahange base]をクリックします。

同様の操作を行いBaseブランチを再度変更して元のdevelopに戻します。
するとfeature1の変更がPull Requestの履歴から消えました。

メリット
- Pull Requestを作り直す必要がない
 
デメリット
- Pull Requestの履歴にBaseブランチを変更したログが残る
 
方法3. Pull Requestを作り直す
feature2のPull Requestを単に作り直しすことによっても対処が可能です。方法2、3に比べて手間は大きい気がします。
メリット
- 履歴のきれいなPull Requestが作られる
 
デメリット
- MergeされずにcloseされたPull Requestのゴミが残る
 - コメント等は書き直し
 
おわりに
GitHubでBaseブランチにMerge済みの変更がPull Requestに反映されない時の対処についてでした。お好きな方法をどうぞ。
参考
以上






