如何从主分支中清除/删除重复提交的历史记录?

时间:2014-09-10 18:28:06

标签: git branch

我正在尝试清理旧的存储库,这可能是我在学习如何使用Git时创建的第一个存储库。看一下master的历史,我注意到了这一点:

R -- P -- A -- B -- C -- D -- M -- E
      \                      /
       A' --- B' --- C' --- D'

其中A'B',...与AB完全相同,... M是合并提交,E不是最后一个 我的存储库中有两个分支(masterdevelop),master是唯一受影响的(develop之后已创建)。

我想删除那些重复提交,从P(不包括)到M,导致类似这样的内容:

R -- P -- A -- B -- C -- D -- E

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

似乎M是一个分支与同一分支的重新定义版本的合并

我会做以下事情:

git checkout master
git rebase --onto D M

这个命令会将所有提交从M改为主分支提示而不是D(从历史中删除M),因为A' - B' - C' - D'是可达的,因为M,这个提交将被“删除”历史和历史将以您的寻找方式结束:

  

[R - P ----- -----甲----乙Ç---- ---- dË

Rebase是一个强大的命令,你可以用它做出惊人的事情:)

相关问题