为什么git-svn clone将'master'设置为随机分支?

Lee*_*ton 2 svn git version-control git-svn

我正在尝试将现有的svn存储库移动到git.我们不需要在两者之间进行任何同步(所以没有git svn fetches或dcommits) - 我们只是移动过来就是这样.

我发出此命令来创建git存储库:

git svn clone -s https://server/repos/my_repo
Run Code Online (Sandbox Code Playgroud)

这很好.但是,当我cd进入新my_repo目录时,其中的文件是其中一个分支(不是主干)的一部分.

做一个git branches -a收益率:

* master
  modelExperimentalTrunk
  modelExperimentalTrunk@719
  dRefactoring
  reorganise
  stableV396
  tags/v1.0
  trunk
Run Code Online (Sandbox Code Playgroud)

我在主分支上,但是我的沙箱中的文件实际上来自dRefactoring分支(我们较为模糊的分支之一).

问题:

  • 为什么master分支机构没有连接trunk
  • 有没有办法重新连接到trunk?或者可以在git svn clone舞台上完成吗?
  • 此外,鉴于这将在服务器上,有没有办法git svn可以创建一个--bare存储库?

seb*_*sgo 7

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

git checkout master
git reset --hard trunk
Run Code Online (Sandbox Code Playgroud)

这将切换到主分支(如果不是这种情况)并将其重置并将工作树重置为主干分支的状态.在此之后,您可以安全地删除主干分支.

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

因此,您可以创建已经存在的git存储库的裸克隆并进行设置.