我“继承”了一个脏的Git存储库,其中包含大约5k个有效提交和约50k个垃圾邮件提交(这是曾经是可写入世界维基的编辑历史记录)。我们正在迁移格式,所以现在是重写历史的好时机。我不想完全丢失历史记录,但无论是按提交体积还是按原始内容体积,垃圾邮件都是压倒性的。旧的回滚到最后一个好的提交的整理技术留下了很多垃圾。
我可以使用
请注意,我非常熟悉
我考虑编写一个脚本来操作rebase脚本,但我认为这会让我遇到错误的情况。我可能可以同时捕获和删除原始污损和回滚,但当我错过其中一个方程的一侧时会发生什么?当其中一个不干净的提交无法重新设置时,我希望成功而不是失败的其余可能匹配。
请注意,我不想根据我的匹配操作文件的内容或添加/删除文件,我想检查补丁的内容,并基于此决定选择还是丢弃。
最好使用哪个
我可以使用
git log -S
和一些正则表达式工作来找到大约80%的坏提交,没有太多麻烦。大部分垃圾邮件内容都很明显。问题是我不确定该如何处理我想要删除的大量提交列表。请注意,我非常熟悉
git
并每小时使用git rebase
(如果不是因为 git revise 已经承担了很多负载,那就会是每分钟),而且我知道如何手动完成此操作,但我需要自动化解决方案。通常我会使用git filter-branch
,但我不确定使用哪个工具来检查当前差异。我考虑编写一个脚本来操作rebase脚本,但我认为这会让我遇到错误的情况。我可能可以同时捕获和删除原始污损和回滚,但当我错过其中一个方程的一侧时会发生什么?当其中一个不干净的提交无法重新设置时,我希望成功而不是失败的其余可能匹配。
请注意,我不想根据我的匹配操作文件的内容或添加/删除文件,我想检查补丁的内容,并基于此决定选择还是丢弃。
最好使用哪个
git
工具?
10个链接),然后是一个大的回滚提交(删除100个链接)。 - Caleb