我看到了这个question ,但答案并未讨论保留在拆分第一个存储库之前已移动的文件的历史记录。
我感兴趣的是以下场景:最初有一个存储库,由于重构,一些文件已在不同时间在该存储库中移动。现在,我们通过从这个 repo 中选择文件的一个子集来创建另一个来拆分这个初始 repo。如果我们执行 filter-branch
与 --subdirectory-filter
参数,我们可以限制新的 repo 只包含与剩余文件相关的历史。
然而,经过一些实验,这似乎破坏了在上次移动文件之前创建的文件中的历史记录(即,git log --follow
不再有任何文件重命名记录可遵循)。
有没有办法解决这个问题 git blame
和 git log
执行 filter-branch
时仍然可以跟踪文件的完整历史记录命令,或者是否有任何其他方法来保留已移动或重命名的文件的历史记录?
最佳答案
保持大(原始)存储库不变,创建两个包含您想要的内容的新存储库,并使用 git grafts 将它们粘附到原始存储库。
这样你就不需要整个历史的两个独立副本,那些根本不需要历史的人也不必克隆它。
关于git - 拆分存储库时是否可以保留移动文件的 git 版本历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405162/