我正在使用git子树将java项目的特定包拆分到另一个存储库(保留历史记录),如下所示
$ git subtree split -P src/main/java/com/company/package -b moved_package_branch
然后当切换到这个分支时,我发现包的所有内容都被移动到项目的根目录而不是原来的位置(src / main / java / com / company / package)
有关如何修复它的想法吗?
答案 0 :(得分:1)
我使用了另一个git命令而不是子树,如下所示
$ git checkout -b moved_package_branch
$ git filter-branch --index-filter 'git rm --cached -qr -- . && git reset -q $GIT_COMMIT -- src/main/java/com/company/package' --prune-empty
请注意,您可以包含多个文件夹(以空格分隔)
参考: 来自@David Smiley的最后答案
Detach many subdirectories into a new, separate Git repository