git rebaseの例
git rebase
は難しいねーっていう話をたまにするので、実際の例を書いてみる。コンフリクトしたので自明ではない例だと思ったけど、そうでもないかも。
rebaseの手順
.scssファイルを編集したPRがあって、いつのまにかマージできなくなっていたのでgit rebase master
したらうまくいかなかった。
こんな感じにコンフリクトした。
見るからに両方とも残して良さそうだけど、念のためdiffを確認する。
このコミットはmargin-right
の指定を追加する物なので、HEAD
に入っていたimg
の指定と両方残すのが正しい。
この状態にして--continue
する。すると、またマージに失敗する。
念のためdiffを確認してみよう。
このコミットではmargin-right
をmargin
で書き換えているので、margin-right
を消せば良い。
さらに--continue
すると、もう一回似たような感じでコンフリクトする。
これもmargin
を17px
にするほうを残す。
最終的に、最初のdiffと違い見比べて、img
が増えただけでmargin
の指定が同じになっていることを確認する。
まとめ
- 衝突した部分を見比べるだけで変更が推測できるので、これは簡単な例だった
-
margin
を何度も編集している部分を一つにまとめたい (git rebase -i
)
- 何度も同じことを繰り返した気がするけど、もしかして
git-rerere
すると幸せになれる?
git rebase難しい問題
margin
を何度も編集している部分を一つにまとめたい (git rebase -i
)git-rerere
すると幸せになれる?git push -f
するまではいくらでもやり直しができるので、上手くいくまで3回くらいやってみれば良いと思った。あと、他人のPRをrebaseすると、自分で書いたものと違って最終形態が自明でないので、むしろ何をすれば良いかわかりやすいかもしれない(壊れたときに取り返しがつかないかもだけど)。
Author And Source
この問題について(git rebaseの例), 我々は、より多くの情報をここで見つけました https://qiita.com/soutaro/items/2e9ddc8a850f6b16adf7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .