代码之家  ›  专栏  ›  技术社区  ›  matpie

用历史记录导出Git中的子树

  •  63
  • matpie  · 技术社区  · 15 年前

    我的Git存储库中有一个文件夹,我想把它移到自己的存储库中。是否可以将该文件夹的历史记录与该文件夹一起移动?

    我以前只做过 git rm -r --cached subfolder/ 然后 git init 在子文件夹上。但是,历史记录不会导入到新存储库中。

    1 回复  |  直到 8 年前
        1
  •  94
  •   Joel Purra    11 年前

    引用一个例子 git-filter-branch(1)

    要重写存储库,使其看起来像foodir/是其项目根目录,并放弃所有其他历史记录,请执行以下操作:

    git filter-branch --subdirectory-filter foodir -- --all
    

    因此,您可以,例如,将库子目录转换为自己的存储库。请注意--将筛选分支选项与修订选项分开,而--全部重写所有分支和标记。