我有一个可以追溯到2007年的Git存储库。它最初是作为CVS仓库转换为SVN然后转换为Git。
几个月前,我做了一些filter-branch
- 减少存储库大小,并将一些不相关的项目分拆到自己的存储库中。
结果是剩下的" main"存储库现在是一团糟,我有许多提交看起来相同(相同的消息和时间戳)但在树的并行轨道上不同的SHA1。
有没有办法将其重写为完整的线性历史记录?我想循环遍历历史记录,基本上只是在任何一天进行最后一次提交,并保留当天的提交,但结合当天的所有唯一提交消息。
这会给我一个线性的时间顺序历史。我理解在开发分支上进行的任何实验看起来都有些奇怪(好像我在master上进行了更改,然后将其退出)。没关系。
Git确实应该保留某种元历史记录,将重写和重新提交的内容追溯到原始提交。
答案 0 :(得分:0)
毕竟有一个简单的解决办法。
我找了两个明显重复的提交(几个月前的一个里程碑式的生产版本,预先记录了所有过滤器分支的疯狂),并使用git replace
将两个重复项放在一起。
所以现在旧的历史和最近的历史都是线性的,只有一个局部的疯狂膨胀,我只会留下。