拆分存储库时是否可以保留移动文件的git版本历史记录?

时间:2012-05-01 22:16:14

标签: git

我看到了这个question,但答案没有讨论保留在拆分第一个存储库之前移动的文件的历史记录。

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

有没有办法绕过这个,以便git blamegit log在执行filter-branch命令时仍然可以跟踪文件的完整历史记录,或者是否有任何其他方法可以保留已移动或重命名的文件的历史记录?

1 个答案:

答案 0 :(得分:0)

按原样保留大(原始)存储库,创建两个包含所需内容的新存储库,并使用git grafts将它们粘贴到原始存储库。

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