【发布时间】:2026-01-18 10:30:01
【问题描述】:
我一直致力于将我们在一个 SVN 存储库中的 9 个项目转移到 9 个单独的 git 存储库,由 gitolite 在服务器上管理,然后关闭 SVN。其中七个很简单,因为它们没有分支或标签,所以在我的工作站上我可以做一个简单的:
git svn clone --stdlayout --no-metadata -A svnauthors.txt svn+ssh://user@host/var/subversion/project tempProject
然后通过以下方式从我的工作站推送到 gitolite 服务器:
git remote add origin ssh://gitolite@host/project
git push -u origin master
他们都工作得很好。现在最后两个项目更加困难,每个项目大约有 30 个标签/分支。在我看到的其中一个项目上运行上述“git svn clone”后:
$ git branch -a
* master
remotes/BatchUpload
remotes/clarify_breadcrumb
remotes/contact_type
remotes/contact_upload_improvements
remotes/file_cabinet
remotes/mobile
remotes/summary_tiles
remotes/summary_updates
remotes/tags/release-2.1.2
remotes/tags/release-3.0.1
remotes/tags/release-3.0.2
remotes/tags/release-3.0.2c
remotes/tags/release-3.1.1
remotes/tags/release-3.1.3
remotes/tags/release-3.1.4
remotes/tags/release-3.1.5
remotes/tags/release-3.1.5.UPDT
remotes/tags/release-3.2
remotes/tags/release-3.2.1
remotes/tags/release-3.2.2.1
remotes/tags/release-3.2.3
remotes/tags/release-3.2.4
remotes/tags/release-3.2.6
remotes/tags/release-3.2.7
remotes/tags/release-3.2.7.1
remotes/trunk
remotes/user_man_batch_upload
remotes/user_management
现在如何将所有这些标签/分支下载到我的本地工作站,以便我可以通过 gitolite 推送它们并永久关闭 SVN 服务器?我需要在this guide 中做什么,为每个分支和标签执行“git checkout -b”吗?我应该为此使用 svn2git 还是其他工具?
【问题讨论】: