拆分git存储库

时间:2009-10-12 04:25:35

标签: git

我目前有一个git存储库,我刚从svn导入名字学校。在这个学校知识库里面,我有一个每个课程的文件夹。

我似乎无法如何使用这个存储库并将其拆分为每个类的存储库而不会丢失该类的整个历史记录,我不希望这样做。

建议?

2 个答案:

答案 0 :(得分:6)

git filter-branch是要走的路。为每个子目录制作一份repo副本,然后在每个副本中运行一行,将“myclassname”替换为您的实际类名:

git filter-branch --subdirectory-filter myclassname -- --all

Github help page上提供了对此过程的更详细说明。

答案 1 :(得分:-1)

运行以下命令

git log -u <path>

这将为您提供指定文件夹中每个变更集的变更集(包括差异)列表。

从这里开始,您可以编写一个脚本来解析git log的输出,并在新的存储库上运行每个补丁,保留更改集和作者信息。

有点黑客,但它会奏效。