如何转换 git 存储库中的大量提交

How do I transform a large number of commits in a git repository

我有一个 git 存储库,它是从 subversion 转换过来的。在 subversion 存储库中,树的一部分是使用与修订挂钩的外部组件导入的,转换工具留下了有关如何在存储库中的文件中查找这些外部组件的信息。

现在我想重写 git 存储库以包含来自 subversion 外部的文件。

我认为这样做的方法是找到元文件更改的所有位置,从 subversion 导出外部文件并将更改提交到 git 存储库中的文件。我在正确的轨道上吗?如果是这样,我如何使用 git 执行此操作?如果不是,我应该怎么做?

经过一些研究,我发现我可以使用 git filter-branch 使用脚本重写存储库中的每个提交,所以我编写了一个脚本来读取外部元文件并使用 svn export 来添加外部包含的文件。