4

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

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

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

4

1 回答 1

0

保持大(原始)存储库原样,创建两个包含所需内容的新存储库,然后使用 git 移植将它们粘合到原始存储库。

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

于 2012-06-04T12:01:53.143 回答