如何获取与文件夹相关的所有提交并将其放入新的回购协议中?

How to get all commit releated to a folder and put it into new repo?

我有一个像

这样的 git 回购
repo
/sub-project1
 /sub-folders and files
/sub-project2
 /sub-folders and files
/sub-project3
 /sub-folders and files

我想删除

 /sub-project1
     /sub-folders and files

并创建一个新的存储库,其中包含与该文件夹和文件相关的所有 git 历史记录。

主要考虑是仅保留与该文件夹相关的历史记录,并删除所有其他不需要的历史记录

最好的方法是什么?

只保留所需文件夹的历史记录。需要使用以下命令

git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter <folder-name> -- --all