我需要从git历史记录中删除一些过时的文件,因此我遵循使用“git filter-branch ...”的方法在各种问题和git手册中提出。运行这个命令后,我现在看到我的“git log”中所有重写的提交,所以我现在有大约30次提交(删除3个文件后)而不是最初的10次提交。如何清理git过滤器分支后git中过时的重写提交
我尝试了在各种答案中提供的建议,以删除“.git/refs/originals”,然后“git reflog expire ...”和“git gc --aggressive --prune”等,但我仍然有30次提交。我也尝试了将我的存储库复制到新存储库的建议,新存储库也有30个提交。我也推到github,现在有30个提交。
是否有任何我想丢掉覆盖的提交(没有做rebase操作)。我的目标是只摆脱“重复”提交,而不是压缩提交。
谢谢!
我特别不想手代码rebase命令,因为我将不得不樱桃选择所有原始提交,通过重新合并冲突等我想要的是一种方法来擦除旧的提交被重写。 – rraheja 2011-05-13 04:30:39
将过期时间设置为0后,可以通过运行git gc来忘记旧提交。一旦删除了旧提交的所有引用,那些对象将被垃圾收集。 – 2011-05-14 00:24:59