使用嵌套子目录结构拆分git repo

使用嵌套子目录结构拆分git repo,git,Git,经过多次搜索,我还没有找到任何特定于拆分包含嵌套子目录的git repo的内容,例如java包。我想为一个包取一个嵌套的子目录,并移动到它自己的repo。例如,以: | root1 |--com |----mycompany |-------foo |-------酒吧 其中foo和bar包含符合java包目录规则的不同包;com和mycompany目录中没有文件。 我想将foo转移到它自己的回购协议,让com/mycompany/bar完好无损;新回购协议应包含com/mycompany/fo

经过多次搜索,我还没有找到任何特定于拆分包含嵌套子目录的git repo的内容,例如java包。我想为一个包取一个嵌套的子目录,并移动到它自己的repo。例如,以:

| root1
|--com
|----mycompany
|-------foo
|-------酒吧
其中foo和bar包含符合java包目录规则的不同包;com和mycompany目录中没有文件。 我想将foo转移到它自己的回购协议,让com/mycompany/bar完好无损;新回购协议应包含com/mycompany/foo,因此: |新根2
|--com
|----mycompany
|-------foo
留下root1,除了foo |root1
|--com
|----mycompany
|-------酒吧

这听起来很简单,几乎每个博客都是如此,所以问题和示例只显示了一个深度目录拆分,子目录成为新repo的根目录。不是我想要的

理想情况下,每个包的提交历史记录都会被保留,但会分离到各自的repo中。
我尝试了:git filter branch--索引过滤器'git rm--cached-r com/mycompany/bar'--所有这些都是为了删除bar内容,这似乎从git跟踪中删除了bar,但对历史没有明显的影响。
还尝试了:git filter branch--子目录filter com/mycompany/foo HEAD--所有这些都将所有foo文件放在repo根目录中

很多人都问过类似的问题,但我还没有找到任何能够解决保留根和嵌套(java)子目录结构的问题。 有谁能描述一下如何将这些包分割成单独的回购协议,每个包保留历史记录