Git 将子目录拆分为单独的分支
我正在尝试将我的SVN项目导入Git。我在SVN中有以下目录结构:Git 将子目录拆分为单独的分支,git,git-svn,git-subtree,Git,Git Svn,Git Subtree,我正在尝试将我的SVN项目导入Git。我在SVN中有以下目录结构: trunk -- AAA -- UUU -- PPP -- QQQ 在Git中,我希望它是: master branch -- AAA -- UUU PQ-branch -- PPP -- QQQ 如何在保留目录的所有提交历史记录的同时实现这一点 我尝试使用Git subtree split将PPP和QQQ拆分为单独的分支,但是如何从主分支中删除PPP和QQQ的提交历史 我尝试将筛选器分支与-
trunk
-- AAA
-- UUU
-- PPP
-- QQQ
在Git中,我希望它是:
master branch
-- AAA
-- UUU
PQ-branch
-- PPP
-- QQQ
如何在保留目录的所有提交历史记录的同时实现这一点
我尝试使用Git subtree split将PPP和QQQ拆分为单独的分支,但是如何从主分支中删除PPP和QQQ的提交历史
我尝试将筛选器分支与
--tree filter
一起使用,但没有效果。您可以使用git svn clone
将不同的子目录分别克隆为分支。一旦你准备好了,棘手的部分就开始了,那就是重写git历史,在这里你缝合/连接两个分支,AAA和UUU,作为主分支,其余作为分支PQ
可以使用git-graft
或git-replace
执行此操作。在重写git历史时要小心。您可以在或此处阅读更多信息
要找到移植点,您需要找到两个分支(AAA和UUU)之间的最后一个公共提交,这是您的移植点。找到这一点的最简单方法是在两个分支中搜索具有相同时间戳的提交。一旦你找到这份承诺,你就有了你的嫁接点谢谢。我能够将文件夹克隆到不同的子目录中,然后将它们合并到我想要的分支结构中。