我有一个庞大的git存储库,我想清理一些错误进入存储库的二进制文件。不幸的是,这些提交是介于两者之间的,因此不仅仅是可删除的。此外,git当前位于作为裸存储库存储的私有服务器上(作为备份和中央分发)
从技术上讲,我正在寻找一种自动化工具,可以在每次提交时重新创建完整的git,但忽略特定的文件和文件夹。 我希望保留作者,每个提交消息和提交日期(如果可能)。 手动方式是某种创建新的repo并在旧repo的每次提交之间创建一个手动差异。将diff应用于新的repo并检查是否有应该排除的文件并提交....这非常繁琐且容易出错。
当然删除文件将是一种简单的方法,但是我真的会缩小存储库的大小(删除不会这样做,因为每次提交都可以恢复100%)。我也可以将第一次提交的巨大差异应用到当前头部,但是我会保留提交消息,作者并希望日期仍然依赖于" git blame"。我也会在当地保存完整的历史。
我知道每个人都需要重新连接新的存储库,因为每个提交哈希(或提交ID)都会改变。还需要使用全新的副本销毁远程存储库。
有人知道这样做的自动化工具吗?