需求:公司项目之前一直维护在SVN上,因为有正式、测试环境区分,代码在测试阶段需要提交到SVN,并部署在测试环境,然而同时相关模块代码又需要正式环境更新,所以会造成测试代码携带到了正式环境,因为测试代码存在一定bug或还未经过测试发现,所以不能进行升级。然后想到了创建一个代码分支,专门用于防止测试代码,测试完成后再合并到正式代码分支,然而SVN对分支操作并不友好,完全是另一个目录,所以需要使用Git去控制,所以需要替换为Git,然后首先要做的就是同步SVN的提交记录,这样才能保证历史版本可追溯。
1.SVN代码和提交记录迁移到Git
创建一个空文件夹,用来存放SVN上迁移过来的代码
在该目录打开git命令窗,执行clone命令开始迁移,命令如下:
git svn clone https://192.168.1.100/svn/tps/tpsBranch
这里需要选择是否接受证书验证,输入t(接受)
然后提供SVN验证信息,输入SVN账号密码即可
出现如下日志,表示代码开始迁移,因为它是一条条提交记录迁移的,所以迁移时间要看代码提交记录有多少,这里我的项目从15年维护到2022年,有6000多次提交,足足等待了有四个小时
迁移完成后如下:
这就表示迁移成功了,查看项目目录:.git已经生成
2.查看git提交记录
现在要想看以前的提交记录是否迁移过来的话, 我们就需要在命令行里进入的本地仓库根目录中(也就是带有.git的目录), 进入之后输入git log, 就可以看到以前的提交记录了。(按Q退出)
3.添加Git远程URL
git remote add origin git@gitee.com:outsideasy/tps-crm.git
如果远程仓库是空的就可以直接执行第4步(最好是空的),如果不是空的拉取代码时起来会遇上一些麻烦,更新时会遇到一些错误,这里我只记录主要命令,解决错误过程都是Git的操作,就不再赘述。
git pull --rebase origin master
4.推送代码到Git
git push origin master
以上就是SVN代码迁移到Git的所有步骤了,总结来看,第一步是迁移的核心,后续操作都是Git操作。