在Git中合并/变基“断开”的分支

6
假设我们在Git中有以下情况:
      X---Y feature
     /
A---B---C---D edge

现在我使用 edit 命令,略微修改了 B 提交记录的内容,然后将 edge 分支进行了变基操作,使其看起来如下所示:

      X---Y feature

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

C'和D'是与C和D相同的提交,但应用在E之上(请注意,在feature分支中的X变得不连续)。

现在我该怎么做:

  1. feature分支rebase/merge,使其提交看起来好像它们是应用在D'之上的?
  2. feature分支rebase/merge,使其提交看起来好像它们是应用在E之上的,但没有单独的“merging branch...”提交(并且C'和D'被重写为C''和D'')?
1个回答

6

X 并不会断开连接,它仍然有原始的 B 作为其父级。如果您想随后将 featureedge 之上变基,则:

git checkout feature
git rebase edge

如果您希望更改树的结构,使其具有与原始版本类似的结构,但 X 作为 E 的子节点,那么可以这样做:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接