git rebase 到不同的分支

Leo*_*ado 6 git rebase

我有以下情况:

Master ---X---X---X
               \
   Alpha branch A1---A2---A3---A4---A5---A6
                      \              \
                       \  beta branch B1---B2
                        \
              My Branch M1---M2---M3
Run Code Online (Sandbox Code Playgroud)

我想将我的分支移至“B2”,结果如下:

Master ---X---X---X
               \
   Alpha branch A1---A2---A3---A4---A5---A6
                                     \
                          beta branch B1---B2
                                            \                             
                                  My Branch M1---M2---M3
Run Code Online (Sandbox Code Playgroud)

为此,我应该在我的分支中创建一个git rebase beta或者应该添加选项--onto ,如下所示:git rebase --onto beta alpha My?我已经阅读了文档,但我仍然没有弄清楚其中的区别...

mon*_*ish 8

有四种方法可以做到这一点:

  • git rebase <分支>

    将签出的分支重置为 <branch>,应用差异(之前的 HEAD 和共同祖先之间)并提交。

    git checkout my
    git rebase beta
    
    Run Code Online (Sandbox Code Playgroud)
  • git rebase <分支1> <分支2>

    将 <branch2> 重置为 <branch1>,应用差异(之前的 <branch2> 和共同祖先之间)并提交。

    git rebase beta my
    
    Run Code Online (Sandbox Code Playgroud)
  • git rebase --onto <分支1> <分支2>

    将签出的分支重置为 <branch1>,应用差异(之前的 HEAD 和 <branch2> 之间)并提交。

    git checkout my
    git rebase --onto beta A2
    
    Run Code Online (Sandbox Code Playgroud)
  • git rebase --onto <分支1> <分支2> <分支3>

    将 <branch2> 重置为 <branch1>,应用差异(之前的 HEAD 和 <branch2> 之间)并提交。

    git rebase --onto beta A2 my
    
    Run Code Online (Sandbox Code Playgroud)