经过多次搜索,我找不到任何特定于拆分包含嵌套子目录的git仓库的内容,例如java包。我想为一个包带一个嵌套的子目录,并转移到它自己的repo。例如,从:
开始
| root1
| --com
| ---- mycompany
| ------- foo
| -------吧
其中foo和bar包含符合java的包目录规则的不同包; com和mycompany目录中没有文件。
我想把foo移到它自己的回购中,让com / mycompany / bar完好无损;新的repo应该包含com / mycompany / foo,因此:
| newroot2
| --com
| ---- mycompany
| ------- foo
并保留root1除了foo之外的所有内容
| root1
| --com
| ---- mycompany
| ------- bar
这听起来很简单,几乎每个博客,SO问题和示例只显示一个深度目录拆分,子目录成为新回购的根目录。不是我想要的。
理想情况下,每个包的提交历史记录将被保留,但会分成相应的存储库
我试过了:git filter-branch --index-filter' git rm --cached -r com / mycompany / bar' - - 所有删除条形图,似乎从git跟踪中移除了条形图,但对历史记录没有明显影响 还尝试了:git filter-branch --subdirectory-filter com / mycompany / foo HEAD - - all但是将所有foo文件放在repo根目录中。
很多人都提出了类似的问题,但我还没有找到任何可以保留root和嵌套(java)子目录结构的地址。
任何人都可以描述如何拆分包,保持每个包的历史记录到单独的回购中吗?