将子文件夹从一个git repo移动到另一个保存历史记录

时间:2016-05-12 06:17:13

标签: git clone

我有一个典型的问题就是将一个大型仓库拆分成较小的仓库,所以我搜索并发现了这个问题:http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/

git clone <git repository A url>
cd <git repository A directory>
git remote rm origin
git filter-branch --subdirectory-filter <directory 1> -- --all
mkdir <directory 1>
mv * <directory 1>
git add .
git commit

它对我有用,除了我的克隆是浅的。由于回购很大,我不得不克隆深度为0.
现在,我的选择是什么? 我应该:

  • 在第一步(OR)中以全深度克隆回购。
  • 在步骤3中不分离遥控器并在过滤子目录(OR)
  • 后获取所有内容
  • 还有别的吗?

1 个答案:

答案 0 :(得分:1)

即使没有再次克隆,您也可以convert your current repo from shallow to "unshallow"

git fetch --unshallow

然后,您可以继续git filter-branch