← 返回首页

SVN → Git 迁移

2026-05-14

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 可能较慢,建议指定起始版本
pigchen.github.io

鲁ICP备2020042804号-1