我正在将SVN存储库迁移到Git。
svn结构如下所示
Root
+ branches
+ b1
+ b2
+ development_branches
+ d1
+ d2
+ tags
+ trunk
这里的情况是文件夹分支包含另一个子目录develop_branches,而该子目录又包含很少的分支。
当我使用svn2git时,将其转换为git存储库。文件夹development_branches被视为单个分支。下面是使用svn2git
的Git分支结构Root
+ b1
+ b2
+ development_branches
是否可以让svn2git将文件夹“development_branches”的内容视为单独的分支,或者在Git中是否有一种方法可以将文件夹development_branches中的文件夹标记为单独的分支?
提前致谢
答案 0 :(得分:1)
我不确定这是否是正确的做法,但似乎有效。如果这不正确,欢迎您的反馈。
策略是这样的 1.从分支“development_branches”创建分支,每个子文件夹一个 2.检查新创建的分支并使用命令git filter-branch将根内容替换为子目录的内容
git filter-branch -f --subdirectory-filter <subdirectory_name> HEAD
因此,对于问题中显示的git结构,我使用了以下命令
$ git checkout development_branches
$ git branch d1
$ git branch d2
$ git checkout d1
$ git filter-branch -f --subdirectory-filter d1 HEAD
$ git checkout d2
$ git filter-branch -f --subdirectory-filter d2 HEAD
$ git branch -d development_branches
在此之后,新的Git结构
Root
+ b1
+ b2
+ d1
+ d2