98
62

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Githubのプルリクエストで、マージ先ブランチに含まれている変更がプルリクエストの変更差分に表示されてしまう問題

Posted at

社内の開発チームでタイトルのような問題がでていた。
初めてきいた時はちょっと信じられず、かなり疑いました(w)が、実際やってみるとほんとうにそのとおりでした。
この状態、下で図で説明していますが、コードレビュー時に致命的です。

なぜかというと、レビュー対象ではない変更差分が表示されるため、どれをレビューしていいか、まったくわからなくなるから。

まあ、ちょっとややこしいので図で説明する。

#どういうことか?

こんなブランチで開発をしているとする。
これ自体はよくある形でしょう。

スクリーンショット 2017-06-17 14.08.34.png

この時点で各BranchからMasterブランチへのプルリクエストはこうなっているはず。

###BranchXからMasterへのプルリクエスト

スクリーンショット 2017-06-17 13.53.35.png

##BranchYからMasterへのプルリクエスト

スクリーンショット 2017-06-17 13.54.09.png

#BranchXの開発にBranchYの機能が必要になった
次にBranchXの開発中にBranchYの機能が必要になったため、
以下の図のようにBranchXにBranchYにマージした。
(え、それ開発スコープおかしくない?というツッコミはなしでw)

スクリーンショット 2017-06-17 14.10.17.png

#BanchYの開発が終わったのMasterへマージをする
BranchYの開発完了(やった!テストコードあるかい?)したので、Masterブランチにマージしました。
よくある感じですね。

スクリーンショット 2017-06-17 14.15.23.png

#BranchXの開発完了したので、コードレビューをするためのプルリクエストをみる。
ちなみに、今の状態は概念的にはこんな感じ。

スクリーンショット 2017-06-17 17.04.15.png

さあ、BranchXの開発が終ったので、チームにレビューをしてもらおう。
「ん??なんかレビュアーがざわついてる。。」

12.jpg

「レビューア」ん。。。なんかおかしくない?変更ファイル多くない?

#BranchXからMasterのプルリクエストをみてみよう。

スクリーンショット 2017-06-17 13.55.52.png

そうです。BranchYの差分がでています。上記の概念図でも表していますが、
BranchYはすでにMasterブランチにマージされているのですが、
BranchXからMasterのプルリクエストにBranchYの変更差分表示されていました。

#これはしんどい。
はい、これめちゃしんどいんです。
上記は例ですが、実際こんなに変更フィルが少なくなるはずもなく、まさにカオスです。
実際、かなりチームの生産性落ちます。これ。

#解決方法
調査してみたら簡単でした。

###「BranchXでMasterを追従する(pullする)」

はい、これだけです。
コードにするとこうなる。

# git checkout BranchX
# git pull origin master
# git push origin BranchX

簡単でしょ?
BranchXからMasterへのプルリクエストはこうなりました。

スクリーンショット 2017-06-17 13.53.35.png

わーい。おしまい。

98
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
98
62

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?