git子树更改包目录

时间:2013-11-01 23:22:00

标签: git version-control git-subtree

我正在使用git子树将java项目的特定包拆分到另一个存储库(保留历史记录),如下所示

$ git subtree split -P src/main/java/com/company/package -b moved_package_branch

然后当切换到这个分支时,我发现包的所有内容都被移动到项目的根目录而不是原来的位置(src / main / java / com / company / package)

有关如何修复它的想法吗?

1 个答案:

答案 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