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

标签 git

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

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

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

最佳答案

保持大(原始)存储库不变,创建两个包含您想要的内容的新存储库,并使用 git grafts 将它们粘附到原始存储库。

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

关于git - 拆分存储库时是否可以保留移动文件的 git 版本历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405162/

相关文章:

Git 没有我问就 merge 了?为什么?

git - rebase 依赖主题分支

git - Visual Studio 团队资源管理器-GIT : Automatically ignoring new files

git - 使用 bash 在 git 存储库中输出文件

git - 哪个 git 工具生成了这个 TreeView ?

Git 错误 : cant execute git log && git diff [No such file or directory]

git - 具有相同 GIT master 的多个项目

git补丁导致错误无法识别的输入

git - 我在哪里可以从 gitx 分支下载最新的 gitx 应用程序 (dmg)

git 参数 : Colon vs. 正斜杠