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

标签 svn git version-control git-svn

我正在尝试将我们现有的 svn 存储库移动到 git。我们不需要在两者之间进行任何同步(因此不需要 git svn fetches 或 dcommits)——我们只是移动而已。

我发出了这个命令来创建 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

我在 master 分支上,但沙箱中的文件实际上来自 dRefactoring 分支(我们比较隐蔽的分支之一)。

问题:

  • 为什么 master 分支没有连接到 trunk
  • 有没有办法将它重新连接到trunk?还是可以在 git svn clone 阶段完成?
  • 此外,鉴于这将在服务器上进行,git svn 是否可以创建 --bare 存储库?

最佳答案

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

git checkout master
git reset --hard trunk

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

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

因此,您只需创建一个现有 git 存储库的裸克隆即可。

关于svn - 为什么 git-svn clone 将 'master' 设置为随机分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227528/

相关文章:

linux - 将 Linux 配置文件保存在 SVN 中(Subversion)

git - git 缓存它的结果吗?

Git 与 beyond compare merge

git - 如何在对同一提交进行 rebase 后恢复 merge 提交?

共享点列表版本历史导出到 excel

svn - 如何捕获svn合并信息

svn - TortoiseSVN 不要求身份验证?

windows - 在 Windows Server 中发布提交电子邮件

svn - 如何在 CruiseControl.net 中配置 svn Task 以检测 subversion 外部更改

GIT 与 assembla 存储库类型个人或公共(public)?