DEV Community

d.yoshimitsu
d.yoshimitsu

Posted on

【Git】ちょっと難しいリベースの挙動

複数ブランチに対する git rebase

A---B---C---D  master
     \
      X---Y---Z  dev
           \
            P---Q  dev2

devブランチをmasterブランチの先頭に移動

$ git rebase master dev
              X'--Y'--Z'  dev
             /
A---B---C---D  master
     \
      X---Y---P---Q  dev2

'はリベースによって作られた、既存のコミットを書き換えた、新しいコミットを表しています。

dev2ブランチがコミットBから作られたことになりました。

マージを含むブランチに対する git rebase

            P---M---N  dev
           /   /
      X---Y---Z
     /
A---B---C---D  master

devブランチをmasterブランチの先頭に移動

$ git rebase master dev
A---B---C---D  master
             \
              X---Y---Z---P---N  dev

マージコミットであるMが消えました。

リベースは難しいよというお話でした。(マージを使いませんかと主張したい)

Top comments (0)