說我有一系列提交,看起來像這樣:如何移動的Git分支達樹(反向變基)
h {master}
^
f g {branch1}
^^
d e
^/
c
^
b
^
a
我知道我可以在BRANCH1移動通過重訂樹的結束,所以它看起來像這樣:d->f->h->e->g
。
但是,有沒有什麼辦法可以將分支移動到樹上,所以它看起來像這樣?
h {master}
^
f
^
d g {branch1}
^^
c e
^/
b
^
a
說我有一系列提交,看起來像這樣:如何移動的Git分支達樹(反向變基)
h {master}
^
f g {branch1}
^^
d e
^/
c
^
b
^
a
我知道我可以在BRANCH1移動通過重訂樹的結束,所以它看起來像這樣:d->f->h->e->g
。
但是,有沒有什麼辦法可以將分支移動到樹上,所以它看起來像這樣?
h {master}
^
f
^
d g {branch1}
^^
c e
^/
b
^
a
在登錄branch1
時,運行git rebase --onto b c branch1
。這應該完成這項工作。
事實上,它是從BRANCH1而不是底墊的通常含義除去℃。你可以用rebase
git rebase -i b<SHA1>
交互方式做刪除的pick c<SHA1>
和完整的線。
這不行,我測試過了。 b是c和branch1的祖先,所以沒有什麼會發生簡單的rebase到b。 – dyng
它會工作,這就是rebase意味着工作的方式。如果您已經使用'--onto'測試了某些東西,則應該仔細檢查您運行的是哪個命令。如果你想說服自己,去官方文檔(https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html)並搜索'git rebase - 去掉主題topicA topicB ' –
我再次測試它,這次它運行良好,也許我拼寫SHA!第一次。 +1表示感謝。然後我注意到你的解決方案和我的有什麼不同,你的意思是** squash **'c'到'e',而我的意思是**從歷史中刪除** c。也許我誤解了它。 – dyng