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

3
我将我们现有的svn存储库迁移到git。 我们不需要在两者之间进行任何同步(因此没有 git svn fetch 或 dcommit ) - 我们只是搬迁,就这样。
我发出了以下命令来创建git存储库:
git svn clone -s https://server/repos/my_repo

这个运行良好。然而,当我切换到新的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 仓库?
1个回答

7
重新连接主分支到主干很简单,只需运行以下命令:

git checkout master
git reset --hard trunk

这将切换到主分支(如果还没有),并将其和工作树重置为trunk分支的状态。在此之后,您可以安全地删除trunk分支。
git-svn不支持裸库。阅读http://gsocblog.jsharpe.net/archives/12以获取更多详细信息。但我认为您不需要这种复杂的解决方案,因为您只想对SVN存储库进行单个导入。
因此,您只需创建现有git存储库的裸克隆即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接