一、SVN的概述
svn是Subversion的简称,它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
二、SVN客户端的下载与安装
下载地址:https://tortoisesvn.net/downloads.zh.html
在此安装我就不做详细介绍,svn安装之后桌面空白处右击鼠标会有对应的SVN Checkout和TortoiseSVN,这个说明你已经安装成功。安装成功后重新启动电脑(不重启,可能会导致相关的图标不显示,如果重启还是没有,请做修改对应的注册表,参考:https://jingyan.baidu.com/article/27fa73268648e846f8271f8f.html)。
三、SVN的体系结构
如图所示,通过svn客户端访问svn服务可以从svn仓库中检出/更新代码到本地,也可以将本地代码提交到svn仓库。
四、SVN使用
1.svn的拉取项目
首先需要准备一个空白文件夹,右击文件夹选择SVN Checkout
输入仓库地址(地址向你的项目经理要),更换路径,选择head revision 最新版本,点击OK,第一次拉取需要登录
输入用户名和密码(改用户名和密码),点击ok,拉取过程有点慢,静静等待...
这里拉去的是五个项目,第一次拉取,全是对钩,表示已经与svn服务器爆出同步,这里出现!是因为我修改了项目的文件,与服务器不同。点进入一个项目,在项目的第一个文件.svn文件这里我们不要点击它,不能进行任何修改,我们就当忽略它。其他的目录即时我们要的项目,在公司里,每天早上第一件事,就是需要拉取一下最新的代码,但这里我们就不用在此checkout,而是选择SVN update,更新一下就OK了。
2.将本地新建文件添加到svn服务器上
首先我们在该管理文件下,新建一个文本,我们首先右击该文本选择TortoiseSVN,选择add,该文本会出现一个蓝色的加号标志,这个时候我们右击该文件选择SVN commit
我们每一次提交,都需要写提交的说明信息,注意是每一次提交,点击ok即提交到svn服务器上。这时候查看自己提交的文件这时候蓝色的加号会变成绿色的对钩,这时候就已经成功了。
3.查看日志
日志,大家也是知道的,日志的存在我们能够看到svn的每一次提交版本,意思就是我们能够看到你提交操作。如何查看日志了,选择你要查看日志的项目,右击选择TortoiseSVN,选择show log,就能看到该项目的版本,操作的人信息等。
4.SVN回退
若是不小心修改的,却不知道在哪里修改,我们可以右击你修改的文件选择TortoiseSVN,选择Revert,这里就是回退到服务器当前最新版本。
5.解决代码冲突
代码冲突,这肯定是无法避免的,这里也是在合并代码这块很重要
代码冲突问题的 产生:
多个用户在操作同一个文件时,修改或新增了不同的内容,在第一个用户提交后,第二个用户提交时就会发生冲突,(提交的版本和别人提交的版本内容冲突)
举例:
jack修改了user.java
Rose修改了user.java
Jack在提交操作时不会产生冲突而rose尝试提交时:
提示文件过时,update:
打开文件后解决冲突:
修改内容为:
再次提交,就不会出现问题了。
提示:解决冲突后,应该第一时间在工作的群中发布消息让团队相关人员知晓.
如何避免冲突:
在编辑代码前,养成良好习惯,上班后第一个动作应该是先update代码,保证本地代码和svn同步,在提交代码,如果工作中需要修改别人的代码,应该与负责该代码的人员商讨,而不是直接提交。
五、通过IDEA工具使用SVN
1.上传项目到SVN
创建了一个java项目,同步到svn服务器,rose从服务器中获取项目:
创建项目:svndemo
点击菜单VCS-->Enable Version Control Integration…
选择Subversion
被纳入svn版本控制后当前项目会变成红色:
项目为红色时表示本地版本信息和远程仓库版本信息不一致.
通过IDEA工具查看svn仓库信息:
第一次操作时需添加仓库信息:
效果如下:
开始上传本地代码前需要忽略掉一些不必上传的目录和文件:
本地项目中的target目录 .idea文件 .iml文件都是和代码无关的,所以全部都忽略掉
最终效果:
将本地代码提交到远程仓库: 右击项目 ->Subversion -> Share Directory…
选择上传文件夹:
被纳入svn版本控制的项目效果:
注意: 纳入版本控制只是单纯的在svn远程仓库中创建了一个用以上传项目的目录,该操作并不直接将项目上传
提交本地代码:
选择需要提交的内容提交:
提交后项目效果:
在svn仓库视图中也能看到提交后的项目:
当修改本地代码后:对应的文件会变成蓝色:
再次提交后变为黑色
2.从SVN中检出项目
打开IDEA在开始窗口选择: Check out from Version Control ->Subversion
选择要检出的项目:
选择本地放置项目的文件夹
点击ok
Ok
yes
一直next
最终效果:
第一次写博客,也不知道写的咋样,不过也花费了很长时间,总想写的完美点,但感觉写的不是太好,虽然我知道网上有很多人写了svn相关文章,但我写了一篇自己见解。希望之后能够继续写下去。加油!加油!加油!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战