我正在尝试将现有的svn存储库移动到git。我们不需要在两者之间进行任何同步(因此没有git svn fetch
es或dcommit
s) - 我们只是移动过来就是这样。
我发出此命令来创建git存储库:
git svn clone -s https://server/repos/my_repo
这很好。但是,当我cd
进入新的my_repo
目录时,其中的文件是其中一个分支(不是主干)的一部分。
执行git branches -a
收益:
* master
modelExperimentalTrunk
modelExperimentalTrunk@719
dRefactoring
reorganise
stableV396
tags/v1.0
trunk
我在主分支上,但我沙盒中的文件实际上来自dRefactoring
分支(我们较为模糊的分支之一)。
问题:
master
分支未与trunk
相关联?trunk
?或者可以在git svn clone
阶段完成吗?git svn
可以创建一个--bare存储库?答案 0 :(得分:7)
将主分支重新连接到主干很简单,只需运行:
git checkout master
git reset --hard trunk
这会切换到主分支(如果不是这种情况)并将其重置并将工作树重置为主干分支的状态。在此之后,您可以安全地删除主干分支。
git-svn不支持开箱即用的裸存储库。阅读http://gsocblog.jsharpe.net/archives/12了解更多详情。但我认为您不需要这个复杂的解决方案,因为您只想对SVN存储库进行一次导入。
因此,您可以创建已经存在的git存储库的裸克隆,然后进行设置。