1

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

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

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

关于如何解决它的任何想法?

4

1 回答 1

1

我使用了除 subtree 之外的另一个 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 的最后回答

将许多子目录分离到一个新的、单独的 Git 存储库中

于 2013-11-03T00:17:01.677 回答