2012-05-01 79 views
3

我看到这个question,但答案并没有讨论保留在分割第一个存储库之前移动的文件的历史记录。在拆分存储库时,是否可以保留移动文件的git版本历史记录?

我感兴趣的是以下情况:最初有一个回购,并且由于重构,有些文件在各种时间在本回购库中移动。现在,我们通过从这个回购文件中选择一个文件的子集来创建另一个文件来拆分这个初始回购。如果我们使用--subdirectory-filter参数执行filter-branch,我们可以将新回购限制为仅与剩余文件相关的历史记录。
但是,经过一些实验后,这似乎会破坏上次移动文件之前创建的文件中的历史记录(即git log --follow不再有任何文件重命名记录)。

有没有解决这个办法,使git blamegit log可以执行filter-branch命令时仍然按照文件的完整历史,或者是有任何其他方式来保存已被移动或重命名文件的历史记录?

+0

为什么不只是'git clone'回购和擦除你不想从每个文件? –

+1

那么怎么样:http://help.github.com/remove-sensitive-data/ –

+0

我已经读过“保留文件的历史”在你的问题,这就是为什么我认为你想保持每个文件的历史。 :-) –

回答

0

保持大(原始)存储库的原样,创建两个新的存储库,包含你想要的,并用git移植将它们粘贴到原始存储库。

这样你就不需要整个历史的两个单独的副本,而那些根本不需要历史的人不必克隆它。

相关问题