2014-09-10 108 views
0

我试图清理一个旧版本库,这可能是我在学习如何使用Git时创建的第一个版本库。纵观master的历史,我注意到了这一点:如何清除/删除主分支中的重复提交历史记录?

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

A'B',...完全相同人员犯AB,... M被合并提交和E ISN”最后一个。
我的存储库中有两个分支(masterdevelop),而master是唯一受影响的(develop已在稍后创建)。

我想删除这些重复的承诺,从P(不含)至M,导致这样的事情:

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

我怎么能做到这一点?

+0

Downvoters,问题是完全有效。请考虑撤消你的投票,或者至少详细说明为什么你认为这个问题值得被低估。 – Jubobs 2014-09-10 18:58:26

回答

0

好像M是一个分支,通过同一分支的一个衍合版本

我会做下列的合并:

git checkout master 
git rebase --onto D M 

此命令将重订所有提交从M到主分支提示因为A' - B' - C' - D'由于M而可到达,所以此提交将从历史中“移除”,并且历史将以您正在查找的方式结束:

R-P ----- A- ----乙---- ----ç---- dË

再次基于是一个功能强大的命令,你可以做令人惊奇的事情吧:)

+0

我不确定这个... – Jubobs 2014-09-10 19:01:29

+0

是的,M是一个合并。 – 2014-09-10 19:16:38

相关问题