Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 clone克隆非标准svn存储库_Git_Svn_Git Svn_Git Clone - Fatal编程技术网

缺少分支使用git svn clone克隆非标准svn存储库

缺少分支使用git svn clone克隆非标准svn存储库,git,svn,git-svn,git-clone,Git,Svn,Git Svn,Git Clone,我是一个完全的git新手,我想用git svn克隆我的svn存储库。但是,在运行clone命令后,分支将丢失 回购安排如下: trunk/ branches/team/releases/release-1 branches/team/releases/release-2 ... branches/development/user1/feature1 branches/development/user1/feature2 branches/development/user2/feature3 br

我是一个完全的git新手,我想用git svn克隆我的svn存储库。但是,在运行clone命令后,分支将丢失

回购安排如下:

trunk/
branches/team/releases/release-1
branches/team/releases/release-2
...
branches/development/user1/feature1
branches/development/user1/feature2
branches/development/user2/feature3
branches/development/user2/feature4
...
tags/release1
tags/release2
我使用的命令是:

git svn clone --trunk=/trunk --branches=branches/*/* --tags=tags/*/* --prefix=svn/ --authors-file=authors.txt <my-repo> <git-repo-name>
我怎样才能找到丢失的树枝

这不是或的副本。

您可以多次指定--branchs标记:

这些是init的可选命令行选项。这些标志中的每一个都可以指向相对存储库路径(--tags=project/tags)或完整url(--tags=)。您可以指定多个--tags和/或--branchs选项,以防Subversion存储库将标记或分支放置在多个路径下。选项--stdlayout是一种将主干、标记和分支设置为相对路径的简写方式,这是Subversion的默认设置。如果还提供了任何其他选项,则以它们为准

在您的情况下,请尝试:

git svn clone \
  --branches=branches/team/releases/* \
  --branches=branches/development/user1/* \
  --branches=branches/development/user2/* \
……等等

是否可以再次运行克隆,或者我必须从头开始删除git repo?


一般来说,你应该从头开始尝试。该工具并不意味着是一个更新脚本。

事实上,不需要重新克隆整个存储库就可以做到这一点,而大型subversion存储库可能需要很多小时。我是通过编辑
.git
目录中的
config
文件来实现这一点的,以适当地设置分支和标记

如果执行普通的
git svn获取
,则不会发生任何事情。诀窍是欺骗/强制Git重新蚀刻所有修订:

git svn获取0:HEAD


该命令使所有标记/分支都被引入,而无需经过冗长乏味的主干导入,它足够聪明,可以跳过在初始运行中已经导入的主干修订。我现在在现有的Git存储库中有了我的SVN标记/分支,但没有新的克隆。

我已经尝试过了,并编辑了我的帖子以澄清这一点。我可以在新创建的repo上再次运行clone命令,还是必须删除该repo并重新启动?我会删除该repo并重试,是的。未来粘贴您尝试过的实际命令将有助于获得更有用的答案。我认为我确实粘贴了实际命令-在发出clone命令时,我还多次指定了branch选项,这是一个疏忽。删除repo并使用多个branch选项再次运行clone命令起到了作用。谢谢。效果很好,但我必须添加
-r
标志
git svn clone \
  --branches=branches/team/releases/* \
  --branches=branches/development/user1/* \
  --branches=branches/development/user2/* \