假设我们在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 已断开连接)。
现在我怎样才能:
- Rebase/merge
feature
分支,使其提交看起来就像是在 D' 之上应用的一样? - Rebase/merge
feature
分支,这样它的提交看起来就好像它们是在 E 之上应用的,但没有单独的“merge 分支...”提交(以及 C' 和 D ' 被重写为 C'' 和 D'')?
最佳答案
X
本身并没有断开连接,它仍然有原始的 B
作为它的父级。如果你想随后在 edge
之上 rebase feature
,那么:
git checkout feature
git rebase edge
如果您希望更改树以使其具有与原始版本相似的结构,但将 X
作为 E
的子级,则:
git checkout feature
git rebase --onto <sha-of-E> <sha-of-B> feature
关于git - 在 Git 中 merge/ rebase 'disconnected' 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349928/