【发布时间】:2017-02-15 16:28:50
【问题描述】:
我有很长的线性 git 历史。我想 rebase 一些提交,就好像我创建了一个功能分支并使用 git merge --no-ff master 将其合并回 master。
当前
A -> B -> C -> D -> E -> F
master
想要的
master
A -> B -> E -> F
\ /
C -> D
feature
我想做类似的事情
git checkout D
git checkout -b feature
git rebase B
git merge --no-ff E
但是D 在其历史记录中已经有了B,所以这没有任何作用。我知道如何将E 从B (Split a git branch into two branches?) 中变基,但在这里,所需的E 版本有两个父级。
一些额外的细节是,最初我的项目的结构类似于Desired,而E 实际上是一个合并提交。然后我以某种方式使用git rebase 线性化了我的历史记录,以从旧提交中删除一些不需要的文件。
【问题讨论】:
标签: git