Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GIT从多项目结构中克隆出一个SVN项目_Git_Svn_Clone_Repository - Fatal编程技术网

GIT从多项目结构中克隆出一个SVN项目

GIT从多项目结构中克隆出一个SVN项目,git,svn,clone,repository,Git,Svn,Clone,Repository,我们喜欢使用GIT,我们希望从SVN中逐步克隆项目 我们的SVN结构如下所示: thrunk/ -------/project1 -------/project2 -------/project3..N branches ---/devlopment -------/project1 -------/project2 -------/project3..N ---/feature-2 -------/project1 -------/project2 -------/project3..N ta

我们喜欢使用GIT,我们希望从SVN中逐步克隆项目

我们的SVN结构如下所示:

thrunk/
-------/project1
-------/project2
-------/project3..N
branches
---/devlopment
-------/project1
-------/project2
-------/project3..N
---/feature-2
-------/project1
-------/project2
-------/project3..N
tags
---/v1.0
-------/project1
-------/project2
-------/project3..N

例如,我们希望首先只克隆project2。我们如何才能做到这一点而不丢失分支的整个历史记录等等?

我认为最好的方法是使用
git svn
将整个历史记录导入git,然后与
git filter branch
一起使用,将每个子目录拆分为自己的git存储库。

由于您的svn结构,保持分支和标记历史记录在这里很棘手

你可以使用这个工具。 在您的情况下,命令将是
svn2git/svn--trunk/trunk/project2--tags/tags/--branchs/branchs/

我搜索了
git过滤器分支,找到了示例。首先,我使用
git svn clone REPO-s-A./authors.txt
正常克隆ist,然后使用
git filter branch--index filter“git rm-rf--cached--ignore unmatch/project1/project3”--prune empty--all
是否正确该命令知道我在所有分支和标记中只需要project2,因为我在
--trunk
参数中定义了它?