如何在git-filter-branch之后清理git中过时的重写提交

时间:2011-05-11 08:08:51

标签: git github

我需要从git历史中删除几个过时的文件,所以我按照各种问题和git手册中的建议使用“git filter-branch ...”的方法。在运行命令之后,我现在在我的“git log”中看到所有重写的提交,所以我现在有大约30次提交而不是最初的10次提交(删除3个文件后)。

我尝试了各种答案中提供的建议,删除“.git / refs / originals”,然后“git reflog expire ...”和“git gc --aggressive --prune”等,但我仍然有30个提交。我还尝试了将我的存储库克隆到新存储库的建议,新的存储库也有30个提交。我也推送到github,现在有30个提交。

是否有任何我想要删除被覆盖的提交(没有进行rebase操作)。我的目标是只删除“重复”提交,而不是压缩提交。

谢谢!

2 个答案:

答案 0 :(得分:2)

你运行的命令究竟是什么?最好是重新制作这个回购,然后再试一次。 help.github上有一个可能有用的指南。

答案 1 :(得分:0)

您还可以尝试使用rebase -i --preserve-merges或脚本git cherry-pick --no-commit来执行您想要的操作。

希望这有帮助