项目之前用的是SVN进行代码管理,但是SVN的多分支管理不方便,需要切到Git,同时希望保留之前的Git提交记录
1.导出SVN提交的用户清单,导出后可以手工编辑等号右侧的git用户名和邮箱:
在git bash执行
svn log https://172.0.0.1/svn/XXX/trunk/Integration -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@email.com>"}' | sort -u > ./svn2git.txt
其中gituser1是迁移Git后显示的提交者(效果跟git config --global user.name "gituser1"相同)
第一行必须保留,否则会报错:Author: VisualSVN Server not defined in svn2git.txt
2.使用工具将SVN代码复制到本地仓库:
git svn clone https://172.0.0.1/svn/ProjectName/trunk --no-metadata --authors-file=D:/code/svn2git.txt ProjectName
3.进入到 ProjectName目录, 添加git 仓库,执行命令:
git remote add origin ssh://xxx.xxx.xxx.xxx:root/projectname.git
4.提交到git远程仓库master分支 , 执行命令: git push -u origin master
5.如果报错:fatal: Authentication failed for,执行git config --system --unset credential.helper;
再执行git push -u origin master,会弹出输入git账号密码的框。