如何将SVN仓库迁移至GitLab仓库?含官方文档相关操作指引
如何将SVN仓库迁移至GitLab仓库?
我经常帮团队做SVN到GitLab的迁移,这里把实操步骤整理出来,你可以照着来:
第一步:创建GitLab空项目
首先得在GitLab上建一个完全空白的新项目,用来作为SVN仓库的镜像目标。别初始化README、LICENSE这些文件,保持空状态,避免后续迁移时出现冲突。
第二步:找到GitLab仓库的本地存储路径
根据你的GitLab安装方式,仓库的默认存储路径不一样:
- 如果你用的是Omnibus安装包,默认路径是:
/var/opt/gitlab/git-data/repositories/USER/REPO.git - 如果你是源码编译安装,默认路径是:
/home/git/repositories/USER/REPO.git
这里的USER是GitLab上的用户名或组名,REPO.git是你刚创建的空项目的仓库名(注意要带.git后缀)。
第三步:设置路径变量(可选但推荐)
为了后面操作不用反复输入长路径,建议把这个路径存成环境变量:
# 针对Omnibus安装的情况 export GITLAB_REPO_PATH="/var/opt/gitlab/git-data/repositories/USER/REPO.git" # 针对源码安装的情况 export GITLAB_REPO_PATH="/home/git/repositories/USER/REPO.git"
第四步:克隆SVN并推送到GitLab
接下来要把SVN的内容转换成Git格式,再推送到GitLab仓库:
- 用
git svn clone克隆SVN仓库(替换成你的SVN仓库地址):
git svn clone https://your-svn-repo-url --stdlayout --no-metadata git-svn-mirror
--stdlayout是针对标准SVN目录结构(trunk、branches、tags)的参数,如果你的SVN目录结构特殊,需要调整这个参数。
2. 进入克隆后的本地目录:
cd git-svn-mirror
- 添加GitLab仓库作为远程仓库:
git remote add gitlab $GITLAB_REPO_PATH
- 推送所有分支和标签到GitLab:
git push gitlab --all git push gitlab --tags
第五步:验证迁移结果
推送完成后,回到GitLab的项目页面,检查代码、分支、标签是否都完整迁移过来了。如果有缺失,可以检查SVN克隆时的参数是否正确,或者重新推送对应内容。
内容的提问来源于stack exchange,提问作者shinzou
相关产品推荐
相关产品推荐

