[英]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 beta
或git 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.