把SVN项目导入GitLab(Linux操作版)
公司最近需要把SVN的项目 , 导入GIT , 又不丢失所有操作记录
操作环境 CentOS7
最主要的是导出用户并对于 , 因为SVN和GIT的用户可能并不一样
步骤 :
1. 安装必要软件(git svn git-svn)
yum install -y subversion git git-svn
2. 导出svn仓库的所有提交用户 , 并修改成为git用户
#导出svn用户 svn log {svn项目地址} -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > svnusers.txt
导出的格式如下 :
#这个是SVN的用户格式 chengronghua = chengronghua <chengronghua> chenshuan = chenshuan <chenshuan>
需要改成git的格式 , 另存为 gitusers.txt
chengronghua = crh <crh@qq.com>
chenshuan = cs <cs@qq.com>
3. 把SVN项目Checkout并转换成Git项目
#注意文件要指向那个Git的user文件 git svn clone {SVN项目地址} --no-metadata --authors-file=gitusers.txt {项目名称}
可以用 git log查看一下日志 , 发现项目已经检出 , 并转换成了git项目 , 并且log没有丢失
4 . 下面就是git的常规操作了
# gitlab上先建立一个新项目 , 并创建一个README.md或者.gitignore # 然后就是正常的创建提交动作 git remote add origin http://{git地址} #这一步可能会出现让你补充commit的提示 , 不用管 , 直接:q!退出就行 git pull origin master git push -u origin master