如何将git repo中的单个文件拆分为新的repo?

Kri*_*per 9 git

我有一个带有几个目录的git仓库和一个文件MyFile.ext.

/
  LargeDir1/
  LargeDir2/
  LargeDir3/
      .
      .
      .
  MyFile.ext
Run Code Online (Sandbox Code Playgroud)

我想在其中开始一个新的回购MyFile.ext,并保留所有与之相关的历史,但忽略其他一切(所有的LargeDirs).我怎样才能做到这一点?

对于目录,我已成功使用此答案,但我在单个文件上尝试过,但它不起作用.

我也尝试过这个答案,除了我的文件外,它确实删除了所有内容,但它似乎也留下了所有的历史.

Rol*_*ith 16

使用git fast-export.

首先,将文件的历史记录导出为快速导入流.确保在master分支上执行此操作.

cd oldrepo
git fast-export HEAD -- MyFile.ext >../myfile.fi
Run Code Online (Sandbox Code Playgroud)

然后,您创建一个新的仓库并导入.

cd ..
mkdir newrepo
cd newrepo
git init
git fast-import <../myfile.fi
git checkout
Run Code Online (Sandbox Code Playgroud)

  • 供将来参考:可以添加多个文件名甚至目录名而不是“MyFile.ext”,这对于将存储库拆分为多个部分非常有用。 (2认同)