假设我们在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已断开连接。)
现在我该怎么做:
feature
分支,以便其提交看起来好像是在D'上面应用的那样?feature
分支,使其提交看起来好像是应用于E之上,但没有单独的“合并分支...”提交(并且C'和D'被重写成为C''和D'')?答案 0 :(得分: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