我在 master 分支上以交互方式重新定位,所以功能分支现在看起来像是在它开始之前就开始了。我怎样才能解决这个问题?

I rebased interactively on the master branch, so a feature branch now looks like it starts well before it did. How can I fix this?

我有一个 master 分支和一个 feature 分支:

A --- B --- C --- D --- E Master
             \
              F - G --- H Feature

然后我以交互方式重新设置 master 分支的基数,这样 C 就改变了(变成 C'。现在分支之间的最新共同提交是 B:

A --- B --- C' --- D --- E Master
       \
         C - F --- G --- H Feature

我怎样才能回到我真正的意思?也就是说,功能分支中只有相关的提交,而不是我巧妙更改的旧提交:

A --- B --- C' --- D --- E Master
             \
               F - G --- H Feature

TIA。

简单。将您的功能分支重新定位到 C':

git rebase --onto C' C Feature

C Feature 部分选择从 CFeature (head) 的提交(即 FGH),--onto C' 部分将它们变基到 C'.

如果您想先看看它会做什么,您可以添加交互式 -i 开关。

git checkout -B Master Master@{1}

Master 标签放回移动之前的位置(说 git reflog Master 以查看它所在位置的列表),然后执行您真正想要的变基。