将子文件夹从一个git-reo移动到另一个保存历史的git-reo



我遇到了将一个大型回购拆分为较小回购的典型问题,所以我搜索并发现了以下内容: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

如果不是我的克隆人很肤浅的话,这对我来说是可行的。由于repo很大,我不得不以深度0进行克隆。
现在,我有什么选择
我应该:

  • 在第一步中完全克隆回购(OR)
  • 在步骤3中不分离远程,并在筛选子目录后获取所有子目录(OR)
  • 还有别的事吗

即使不再次克隆,您也可以将当前回购从浅转换为"不允许"

git fetch --unshallow

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

最新更新