拆分git存储库,包括重命名的文件

时间:2016-04-19 12:28:00

标签: git

我曾经有一个存储库:

my-project/
    app/
        common/
            logger.js
        foo/
        bar/
        index.js

位于logger.js的{​​{1}}文件曾位于my-project/app/common。它已随my-project/app移动。命令git mv仅返回历史记录,因为它已被移动,链接到其先前位置的所有历史记录都已丢失。但是,可以使用git log -- app/common/logger.js

访问此丢失的历史记录

我已将此回购拆分为4:

  • git log --follow -- app/common/logger.js:包含my-project-common
  • my-project/app/common:包含my-project-foo
  • my-project/app/foo:包含my-project-bar
  • my-project/app/bar:包含my-project

我用my-project/app/index.js实现了这个目标并且有效。

问题:将git filter-branch移至my-project/app/common时,my-project-common/的历史记录仅包含与其先前位置相关联的历史记录(即logger.js })。即使使用my-project/app/common,也无法访问与位置my-project/app关联的历史记录。

问题:如何保留--follow的完整历史记录?

1 个答案:

答案 0 :(得分:0)

没有其他方法可以查看p.props标记旁边的历史记录。

我能想到的唯一另一种方法是将仓库拆分为4个不同的存储库,然后再将它们合并。

另一种方法是将存储库拆分为单独的存储库并将该解析用作子模块。与以前一样,此解决方案需要拆分回购。

<强> --follow

查看已删除文件的完整历史记录的唯一方法是使用Summary

另一种方法是将存储库拆分为不同的存储库,并将每个部分用作单独的存储库,或者将它们组合回原始存储库。

<强> git log --follow

阅读此答案以获取完整描述 make new git branch containing full history of only some files