簡體   English   中英

git rebase到另一個分支

[英]git rebase to a different branch

我有以下情況:

Master ---X---X---X
               \
   Alpha branch A1---A2---A3---A4---A5---A6
                      \              \
                       \  beta branch B1---B2
                        \
              My Branch M1---M2---M3

我想將我的分支移動到“B2”,結果如下:

Master ---X---X---X
               \
   Alpha branch A1---A2---A3---A4---A5---A6
                                     \
                          beta branch B1---B2
                                            \                             
                                  My Branch M1---M2---M3

要做到這一點,我應該在我的分支中制作一個git rebase beta或者我應該添加選項-如下: git rebase --onto beta alpha My 我已經閱讀了文檔,但我仍然沒有弄清楚差異......

這有四種方法:

  • git rebase <branch>

    將簽出的分支重置為<branch>,應用差異(在先前的HEAD和共同祖先之間)並提交。

     git checkout my git rebase beta 
  • git rebase <branch1> <branch2>

    將<branch2>重置為<branch1>,應用差異(在之前的<branch2>和共同的祖先之間)並提交。

     git rebase beta my 
  • git rebase --onto <branch1> <branch2>

    將簽出分支重置為<branch1>,應用差異(在先前的HEAD和<branch2>之間)並提交。

     git checkout my git rebase --onto beta A2 
  • git rebase --onto <branch1> <branch2> <branch3>

    將<branch2>重置為<branch1>,應用差異(在之前的HEAD和<branch2>之間)並提交。

     git rebase --onto beta A2 my 

如果你處於你的分支之上,只需說git rebase betagit rebase B2 不同的是,通過使用--onto你可以控制更棘手的情況......就像相反:想要在我的分支上移動beta分支。 如果你處於測試階段並運行git rebase my-branch你最終會得到M1 - M2 - M3 - A3' - A4' - A5' - B1' - B2'(因為來自分支分歧的點(A2)修訂A3到A5(包括兩者)也必須包含在一個簡單的rebase中。在這種情況下你必須運行: git rebase --onto my-branch alpha-branch beta-branch希望能把它搞清楚

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM