2010-11-19 119 views
2

我想把我们现有的svn仓库移动到git。我们不需要在两者之间进行任何同步(所以没有git svn fetch es或dcommit s) - 我们只是移动而已,就是这样。为什么git-svn clone将'master'设置为随机分支?

我发出这个命令来创建Git仓库:

git svn clone -s https://server/repos/my_repo 

这种运行良好。但是,当我将cd放入新的my_repo目录中时,其中的文件就是其中一个分支(不是中继线)的一部分。

做一个git branches -a产量:

* master 
    modelExperimentalTrunk 
    [email protected] 
    dRefactoring 
    reorganise 
    stableV396 
    tags/v1.0 
    trunk 

我在主分支,但在我的沙盒文件实际上是从dRefactoring分支(我们的更隐蔽的一个分支)。

问题:

  • 为什么在master分支没有连接到trunk
  • 有没有办法将它重新连接到trunk?或者可以在git svn clone阶段完成?
  • 另外,考虑到这将在服务器上,有没有什么办法可以创建一个--bare存储库?

回答

7

重新连接主分支主干很容易,只需要运行:

git checkout master 
git reset --hard trunk 

这个切换到主分支(如果这是不是已经是这样了),它和工作树重置状态树干分支。在此之后,您可以安全地删除中继分支。

git-svn不支持开箱即用的裸存储库。阅读http://gsocblog.jsharpe.net/archives/12了解更多详情。但是我不认为你需要这个复杂的解决方案,因为你只需要一次导入你的SVN仓库。

因此,您可以创建一个已经存在的git存储库的裸副本并设置好。