2011-03-18 47 views
5

假設我們有Git中以下情況:合併/變基一「斷開」分支在Git中

 X---Y feature 
    /
A---B---C---D edge 

現在我重訂了edge分支改變在B犯一點點(使用edit),所以它現在看起來像這樣:

 X---Y feature 

A---E---C'---D' edge 

C「和d」是相同的提交C和d,但施加E上的頂部(並注意feature分支內的X成爲斷開)。

現在,我怎麼:

  1. 再次基於/合併feature分公司,使公司提交出現,好像他們是在d的「頂級應用?
  2. 重寫/合併feature分支,使其提交看起來好像它們應用在E的頂部,但沒有單獨的'合併分支...'提交(並且C'和D'被重寫爲C' '和D'')?

回答

5

X不會斷開連接本身,它仍然有原始B作爲其父母。如果您想隨後變基feature上的edge頂部,則:

git checkout feature 
git rebase edge 

如果你想變樹,使其具有類似的結構,原來的版本,但與X作爲E一個孩子,這是:

git checkout feature 
git rebase --onto <sha-of-E> <sha-of-B> feature 
+0

謝謝!這解決了它。 – 2011-03-31 21:02:16