通过镜像的方式迁移(可以保证所有分支及主干历史commit得到保留)
确保该用户账号下所有分支及主干都有操作的权限
克隆老项目的镜像
git clone --mirror old.git (old.git 为老项目的git地址)
进入项目目录
cd old.git
老项目的地址替换成新项目
git remote set-url --push origin new.git (new.git 为新项目的git地址)
将镜像推到远程
git push --mirror new.git (new.git 为新项目的git地址)
批量迁移(使用shell脚本)
- 新建一个文件用于需要迁移的项目名称及路径
- 编写脚本用与批量处理git镜像命令
#/bin/bash
cat a.txt | while read line
do
echo $line
git clone --mirror old.git(旧的仓库地址路径这里只需要根路径,从文件读取项目名称即可)/$line
cd $line
git remote set-url --push origin new.git(新仓库路径)/$line
git push --mirror new.git(新仓库路径)/$line
cd ..
done
svn迁移gitlab (可以保证主干历史commit得到保留)
拉取svn代码到本地
git svn clone svn仓库地址 --no-metadata
cd 工程名称
获取gitlab 新建项目的仓库地址git@gitlab.net:groupname/projectname.git
添加远程git库
git remote add origin git@gitlab.net:groupname/projectname.git
提交代码到git库
git push -u origin master