我想将git repo的一个子目录分离为一个独立的repo。
我在SO中的另一个问题上发现了一个简短的指南,用于过滤除相关文件夹外的所有内容(使用git filter-branch --prune-empty --subdirectory-filter dir1 -- --all
),现在我有了一个新的git repo,但包含了原始分支中的所有分支-我如何才能清除所有未更改子目录的分支?
我想以某种方式用rev-list
、ls-tree
来做这件事,然后过滤包含触及我的子目录的提交的分支。
我也不知道我的解决方案实际上是好的还是可能有问题,理论上对我来说很好
有什么想法吗?或者还有其他更简单的方法吗?
最简单的方法可能是只获取或推送过滤后的分支,例如
git init ../split
git push ../split newbranch