說,我有這種情況在我的git回購爲什麼我不能合併主題分支?
A--B--C--D master
|\
| E--F topic
|
\
G--H other
,我想變基topic
到other
分支。這工作正常:
git rebase --onto other master topic
這給了我
A--B--C--D master
|
\
G--H other
\
E--F topic
但如果topic
已經合併到主(git merge topic
)以上rebase
命令不工作了。如果我試試吧,我似乎得到這樣的:
A--B--C--D--M master
|\ /
| E--F----
|
\
G--H other/topic
,而我想這一點:
A--B--C--D--M master
|\ /
| E--F----
|
\
G--H other
\
E'--F' topic
這是爲什麼,我怎麼可以變基topic
到other
即使它已經合併master
?
編輯:更新底部圖表來清楚,E
和F
是不相同的提交 - 但引入相同的變更集。
編輯2:我真正想要的是,彷彿我首先創建的topic
副本(比如topic-rebased
),我變基到other
之前我合併topic
到other
:
git checkout topic
git checkout -b topic-rebased
git rebase --onto other master topic-rebased
git checkout master
git merge topic
該作品精細。但是如果話題已經合併到master
中,那麼rebase就不起作用了。
好吧,我已經更新了一些問題。如果櫻桃採摘不是一種選擇,那麼因爲'topic'上有100多次提交,我還需要'其他'提交?請參閱上面的編輯2,瞭解我真正想要的內容。 – 2014-11-25 14:00:43
我不太瞭解你的編輯,但是如果你需要櫻桃選擇許多提交(即E和F之間有更多的提交),你也可以選擇一個範圍。例如在'other'上使用'git cherry-pick A..topic'來挑選按主題引入的所有提交。 – poke 2014-11-25 14:16:08
好的,但是我需要手動找出,從哪裏開始以及在哪裏結束。不知道,我的編輯還不清楚。下面的例子應該說得很清楚:如果我在*合併主題分支之前重新分配*,它會起作用。它不工作了,如果我試圖在主題合併後重新綁定。 – 2014-11-25 14:36:37