SVN → Git 迁移
环境准备
# Ubuntu/Debian
sudo apt install git-svn
迁移流程
1. 从 SVN 克隆到本地
git svn clone 'SVN仓库地址' 本地目录名 \
--no-metadata --no-minimize-url \
-r 起始版本号:HEAD
参数说明:
| 参数 |
说明 |
SVN仓库地址 |
SVN 项目地址(trunk 或具体分支) |
本地目录名 |
克隆到本地的文件夹名称 |
-r 起始版本号:HEAD |
从该版本开始克隆,保留历史提交 |
--no-metadata |
不带 SVN 元信息,提交记录更干净 |
--no-minimize-url |
保持 URL 完整,避免路径歧义 |
示例:
git svn clone 'https://svn.example.com/project/trunk' gms \
--no-metadata --no-minimize-url \
-r 12345:HEAD
2. 创建远程仓库
在 GitHub / GitLab / Gitea 等平台新建空仓库。
3. 关联远程仓库并推送
cd 本地目录名
git remote add origin 远程仓库地址
git push -u origin HEAD:目标分支
示例:
cd gms
git remote add origin git@github.com:yourname/gms.git
git push -u origin HEAD:dev
注意事项
- 全量克隆:不写
-r 参数会克隆整个 SVN 历史,耗时较长
- 分支迁移:如果需要迁移 SVN branches,先用
git svn clone 拉 trunk,再用 git svn branch 拉其他分支
- 大仓库:如果 SVN 历史很长或文件很多,
git svn clone 可能较慢,建议指定起始版本