svn迁移到git-保留commit-history-转载总结
- svn迁移到git-保留commit-history-转载总结
git svn方法迁移步骤
1. 首先安装 svn与git
2. 获取用户
到svn项目目录右键选中gitbash打开窗口,执行获取用户并映射成git样式账号命令如下:
1 | svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@qq.com>"}' | sort -u > userinfo.txt |
然后会在目录生成文件userinfo.txt样式如:zhansan = 张三 zhansan@qq.com
3. 拉取SVN代码
新建个文件夹,将生成的userinfo.txt放入新建的文件夹,然后在新建的文件夹中右键选中gitbash弹出窗口后执行下面命令,拉取svn代码到本地新建文件夹中
1 | git svn clone https://svn_project_url/ --no-metadata --no-minimize-url --authors-file=userinfo.txt --no-minimize-url |
若是第一次拉取svn中一般会出现这个窗口提示,这个提示就填:p
填完p后,后面还会弹出窗口做相关验证,分别是
操作系统的密码(若你电脑或者服务器设置了密码),
svn的账号,
svn的密码
都填完了,就会开始拉去svn代码了
等一段时间,拉取完成后,当前目录生成一个项目文件夹,进入拉取代码完成后的项目文件夹中会看代码与生成的.git文件夹
3.右键选中gitbash在窗口中用git命令查看提交记录 (按q退出 )
1 | git log |
4.关联需要迁移的git库上项目地址(建议创建新的创库,避免合并出错),会弹窗验证,输入git账号密码
1 | git remote add origin https://gitlab.yiwugo.com:10080/ywg-data-group/iprobe.git |
5.查看关联地址是否正确
1 | git remote -v |
6.将远程仓库代码拉取到本地(注意当前分支)
1 | git pull origin master |
7.如果拉取时报错 ,说明远程仓库有操作记录,可以使用强制合并提交
1 | git pull origin master --allow-unrelated-histories |
8.合并到远程master分支
1 | git push origin master |
9.若svn项目还有其他分支重复上面步骤合并到对应的git分支上即可。
迁移异常
1.拉取svn代码异常
由于项目较大,或者同时执行多个克隆命令 导致空间不足
1 | libsvn: Out of memory - terminating application. |
-
打开新命令窗口 并执行:
1
git svn fetch
会继续下载项目
别的方法
- svn2git
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JLChenBlog!
评论