質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.32%

gitのpull requestでmasterに反映されているはずのcommitが差分として表示されてしまう

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 7,940

hope_920

score 8

最近、他の方のPRを引き継いで修正したりするのですが、その際pushするとmasterに反映されているはずのcommitが差分として表示され、レビューに支障が出ており困っています。

ブランチの状態としては、以下のような感じです。
・PRが上がる(branch:hoge)
・数日経つ(この間に、masterにいくつかmergeされる)
・ローカル環境で、最新のmasterの状態のものからgit branch -b hogeする
・PRに上がっているhogeブランチをpullしてくる
・git diffすると自分が修正したものだけが差分として出てくる
・git pushすると何故かPRにmasterにmergeされているはずの差分が追加で出てくる(この際差分として出てくるのはPRが出てから後にmasterにmergeされたcommitです)

ちなみに、PRを作成し直すとこの現象は解消されます。
また、過去以下のような手順で同様の問題を解決したのですが、今回はこの手順では解決できませんでした(pushするとEverything up-to-dateといわれる)。

# masterの状態がPRが上がる前より古い状態でbranchを切る
$ git branch -b fuga

# PRに上がっているブランチをローカルに持ってくる
$ git pull origin fuga

# masterの状態を最新にする
$ git checkout master
$ git fetch
$ git pull origin master

# PRに上がっているブランチに、最新のmasterの状態をmergeする
$ git checkout fuga
$ git merge master
$ git push origin fuga

何故このような事象が発生するのでしょうか。
PRを作り直せば一応は解決するのですが、できればPRを作り直さず、masterに反映されているはずのcommitをこのPRから除外したいです。

どなたかご存知でしたらご教示いただけますと幸いです。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

自己解決しました(解決と言っていいのかわからないですが)。
masterにそのあと更にcommitされた上で

$ git checkout master
$ git fetch
$ git pull origin master
$ git checkout <作業ブランチ>
$ git merge master
$ git push origin <作業ブランチ>


を実行したらPRからmasterに反映されているはずのcommitが差分としてでなくなりました。

ただ、引き続きpull requestでmasterに反映されているはずのcommitが差分として表示されてしまう原因がさっぱりわからないので、どなたかご存知の方がいらっしゃいましたら教えて頂ければと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/28 00:59 編集

    こちらの記事と同じ状況でしょうか?状況が同じなら非常にわかりやすく図解されてます

    https://qiita.com/puttyo_bubu/items/691681f3f7629cf2d3ea

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る