両者で出来上がるdevは同じになるはずですが、
最初の手順で
git pull --rebase origin master
したあとのpushがforceなしで成功しているのが不思議です。
違う手順だったり、エラー(もしくは何らかのメッセージ)が出ていたりはしなかったでしょうか?
お聞きしたい事
- 対象branchで
$ git pull --rebase origin master
するのと、 - masterにcheckoutし、pullした後対象branchに移動してrebaseするのと
上記2つの違いを教えていただきたいです。
以下詳細です。
pull --rebase と、masterでpullした後rebase
- masterをコピーして、devというbranchを作りました。
- 一度devをpushしました(A地点)
- devで開発を進めました。
- pushする前に、devのbranchで
$ git pull --rebase origin master
しました(B地点) - その後devをpushしました
$ git push origin dev
(push成功)
そして、
- devでmasterへのプルリクエストをすると、devで触った + 触っていないfile changedが大量に出てきました。
- A地点からB地点にかけて行われたmasterへの変更も、devのfile changedの扱いになっていました。
githubのキャッシュの問題だと思い(古いmasterに比較しに行っている)、上司に相談しましたが、上司は
bash
1$ git checkout master 2$ git pull origin master 3$ git checkout dev 4$ git rebase master 5$ git push --force-with-lease
で解決できると言い、その通りにすると希望通り
- devで触った部分だけfile changedが出た
になりました。
$ git pull --rebase origin master
と- 上記の上司のやり方はどこが違うのか、という事をお聞きしたいです。
pull
とpull --rebase
の違いを読んでも、なぜこういう結果になるのかよく分かっていません、、
どうぞよろしくお願いします。
あなたの回答
tips
プレビュー