文章目录

  • 前言
  • 1、SVN简介
  • 2、SVN仓库
  • 3、SVN客户端
  • 4、SVN基础操作
  • 5、撤销和恢复
  • 6、添加忽略
  • 7、解决冲突
  • 8、分支
  • 9、代码暂存

前言

又是一年毕业季,不少小伙伴纷纷入职,我也找到了理想的工作。

正式进入公司后并不会像我们自学时自己一个人随心所欲地写代码,需要我们和同事进行协同开发,此时代码管理工具是必不可少的,目前常用的两款工具是:SVN 和 Git,今天我们就来学习一下SVN的使用!

该技术博客是关于B站SVN视频教程的笔记总结,希望能为大家带来帮助,视频链接如下:

https://www.bilibili.com/video/BV1k4411m7mP?p=5&share_source=copy_web

相关文章推荐

  • Git/Github操作指南

1、SVN简介

SVN是什么

  • 代码版本管理工具
  • 它能记住你每一次的代码修改
  • 查看所有的修改记录
  • 恢复到任何历史版本
  • 恢复已经删除的文件

SVN相比于Git的优势

  • SVN使用简单,上手快
  • 目录级权限控制,企业安全必备
  • 子目录Checkout,减少不必要的文件检出

主要应用场景

  • 开发人员用来做代码的版本管理工具
  • 用来存储一些重要的文件,比如合同
  • 公司内部文件共享,并且能按照目录划分权限

2、SVN仓库

仓库推荐使用:SVN桶,目前最好用的SVN服务,网址如下:

https://svnbucket.com

3、SVN客户端

客户端推荐使用:TortoiseSVN,安装方式如下:

  1. 打开网址https://svnbucket.com,注册登录账号
  2. 点击下载SVN客户端
  3. 点击官网下载
  4. 点击按钮,就自动进行下载了
  5. 下载完成后,进行安装,无脑下一步就安装成功了(可以选择安装路径)

4、SVN基础操作

首先我们需要创建一个SVN项目:


然后我们在桌面上创建文件夹:workspace
进入到workspace文件夹中,鼠标单击右键,单击SVN Checkout…

创建一个需要检出的文件夹:

接着,填写刚刚注册时候的用户名和密码:

此时,svnbucket文件夹中的文件(代码)都可以提交到服务端

我们在该文件夹中添加两个txt文件,鼠标右键,单击SVN Commit…进行提交


提交之后就可以到SVN仓库中查看提交的内容了:


提交操作演示完毕后,也可以对提交的文件内容进行修改,首先我将xzb.txt文件中的内容进行修改,此时文件就会变红:

然后在文件所在页面鼠标右键,单击SVN Commit…(提交之前单击SVN Update先进行更新,这样可以避免冲突

此时我们去SVN仓库查看xzb.txt文件,发现内容修改成功!

5、撤销和恢复

撤销操作第一种情况:首先我们将xzb.txt内容进行修改,文件就变成红色的,此时如果我们想撤销刚刚的修改操作,可以直接在修改的文件上鼠标右键,单击 TortoiseSVN——>Revert… 就可以撤销了!


撤销操作第二种情况:我们将错误的内容提交到仓库中了,此时我们想要撤销,需要先打开日志信息:鼠标右键——>TortoiseSVN——>Show Log


此时这次撤销操作只是在本地撤销,还需要提交到服务端,这样才算真正撤销成功了!


撤销操作第三种情况:我们还可以将提交的错误代码撤销到指定的版本,比如我们想从版本6撤销到版本4,就可以选中版本4,鼠标右键,单击Revert to this revision就本地撤销了,最后需要再次提交才能成功:

6、添加忽略

有些时候,我们不是所有文件都想要进行提交,此时我们就可以对不想提交的文件添加忽略

我们接下来对zyt.txt文件添加忽略。首先需要选中文件,鼠标右键,点击TortoiseSVN——>Unversion and add to ignore list——>zyt.txt,此时zyt.txt文件上多了个❌标志,说明该文件被忽略了。然后我们进行提交就发现SVN仓库中没有zyt.txt文件了:

上述添加忽略的方式同时也是删除忽略的方式,如果想要将忽略属性删除那就再次执行上述操作!

7、解决冲突

什么情况容易发生冲突?

  • 多人修改同一文件同一行
  • 无法进行合并的二进制文件

怎么避免冲突?

  • 经常update同步他人的代码
  • 二进制文件不要多个人同时操作

如何解决冲突?(由于该过程需要两台电脑,且很难文字记录,所以提供视频链接)

https://www.bilibili.com/video/BV1k4411m7mP?p=5&spm_id_from=pageDriver

8、分支

什么时候需要开分支

  • 隔离线上版本和开发版本
  • 大功能开发,不想影响别人,自己独立开个分支进行开发

SVN经典目录结构

  • trunk:主干
  • branches:分支
  • tags:标签

首先我们在文件夹中创建上述经典目录结构(3个文件夹),将代码文件放到trunk文件夹中,加入我们的主干开发已经完成,准备上线了,我们就可以开个线上版本分支。选中trunk文件夹,鼠标右键,单击TortoiseSVN——>Branch/tag,然后按照下图操作就创建好分支了:


此时我们更新一下,就会发现branches中出现了分支,接着我们把onlinev1.0和trunk文件重新检出到workspace文件夹中,鼠标右键查看属性就能得到这两个文件的URL:

然后根据URL 检出SVN Checkout… 到workspace文件夹下,将svnbucket文件夹删除后,我们只有一个主干和一个分支:

此时主干和分支的修改操作,相互之间并没有影响!

在这里我们的svnbucket-onlinev1.0是线上版本,线上版本出现bug我们就对其进行修改提交,这样对主干没有任何影响。

如果我们想把线上的bug修复操作合并到主干上,就需要将鼠标移动到线上版本,鼠标右键——>TortoiseSVN——>Show log,选中刚刚修改的版本:

将此版本合并到svnbucket-trunk,这样就合并完成了!


接下来我们再创建一个onlinev2.0分支文件,演示一下如何切换分支,选中svnbucket-trunk文件


此时另一个分支创建完成了,接下来我们从1.0分支切换到2.0分支:

9、代码暂存

需要使用代码暂存的场景:

  • 代码修改了很多,突然需要紧急修复一个bug,但是代码并没有写完,不能提交
  • 代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交

接下来我将文件内容进行修改,然后将文件暂存起来:


取消暂存的方式也很简单:

【图文详解】入职必备——SVN使用教程相关推荐

  1. 初入职场SVN使用教程,保姆级

    现在一般开发都是协同开发了,所以会用到版本控制系统,说白了就是大家一起开发一个项目,分别写不同的代码,然后需要把代码汇总到一起,大家可能互相需要对方写的代码,就是大家共同去写一套代码,这就是需要版本控 ...

  2. android sdk安装过程,图文详解Android 3.0 SDK安装教程

    [51CTO编者按]我们已经为喜欢Android 3.0的朋友提供Android 3.0 SDK下载,本文我们将向大家介绍Android 3.0 SDK安装教程,本教程与 玩模拟器需要比较好的电脑配置 ...

  3. 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf

    网络工程师必备 – 网络管理常用命令图文详解 网络工程师必备 网络管理常用命令 图文详解 V1.0 V1.0 包含 ping.ipconfig.netstat.nbtstat.tracert. pat ...

  4. IDEA2019版最新配置SVN及上传教程-超详细图文详解

    IDEA2019版配置SVN图文详解 1. 查看svn仓库 调出svn视图: 连接svn服务器: 连接后效果如下: 补充:如果输入正确的连接地址后出现错误-系统找不到指定的文件 请到设置中检查(Fil ...

  5. 入职必备两小时入门SVN(二)

    入职必备两小时入门SVN(二) 1.SVN使用 1.创建版本库 打开SVN服务端(开始菜单) 右击Repository.点击Create Repository,出现下面画面,选择默认就好 2.导入项目 ...

  6. 入职必备两小时入门SVN(一)

    入职必备两小时入门SVN(一) 1.简介 SVN的全称是Subversion,即版本控制系统.它是最流行的一个开放源代码的版本控制系统.作为一个开源的版本控制系统,Subversion管理着随时间改变 ...

  7. Docker持续部署图文详解

    2019独角兽企业重金招聘Python工程师标准>>> Docker持续部署图文详解 博客分类: docker 架构 JAVA项目如何通过Docker实现持续部署(只需简单四步),即 ...

  8. Git学习系列之Git基本操作克隆项目(图文详解)

    不多说,直接上干货! 想必,能进来看我写的这篇博文的朋友,肯定是了解过. 比如SVN的操作吧,最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commi ...

  9. qt on android qml,Qt on Android: Qt Quick 之 Hello World 图文详解

    在上一篇文章,<Qt on Android:QML 语言基础>中,我们介绍了 QML 语言的语法,在最后我们遗留了一些问题没有展开,这篇呢,我们就正式开始撰写 Qt Quick 程序,而那 ...

  10. Git客户端图文详解如何安装配置GitHub操作流程攻略

    Git客户端图文详解如何安装配置GitHub操作流程攻略 软件应用 爱分享  3个月前 (08-15)  8896浏览  0评论 Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来 ...

最新文章

  1. Python logging 模块
  2. 用python画漫画_Python——turtle绘制动漫形象(魔法少女小圆晓美焰,super beautiful)...
  3. 忘掉 Java 并发,先听完这个故事。。。
  4. 【XAudio2】1.XAudio2 介绍
  5. 深入了解crc32算法
  6. 李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结
  7. 算法章节 数组、链表、栈、队列
  8. 让AI打工!搜狗全体员工于3月12日狗胜节放假一天
  9. 韩国各大银行纷纷开始引进区块链技术
  10. php在u盘里运行,在U盘中直接运行Linux的详细步骤
  11. html5光标进去默认值消失,html点击input没有出现光标怎么办
  12. 内核功能导致重启_错误信息:VS2010 Profiler导致Win7重启
  13. linux at命令关机,Linux at命令定时关机
  14. [翻译] (黑苹果)笔记本电脑原生电源管理指南 [Guide] Native Power Management for Laptops
  15. html js 鼠标变图片大小,js之图片变大变小效果
  16. 国产_系统_加油 by tmddebaba
  17. netty系列之IO基础
  18. Javascript实现图片轮播效果。
  19. 程序员常用的一些快捷键(持续更新)
  20. 微信小程序使用阿里彩色图标

热门文章

  1. Proteus7.8 ISIS制图8个LED(针对初次使用者)
  2. 云小课|3种常用Git工作流推荐
  3. 海康SDK接口调用的主要流程
  4. 【写博客常用】美赛成绩如何快速查询!
  5. c语言大作业背单词,c语言必背代码 c语言入门必背单词 c语言必背100代码
  6. html制作苹果手机屏幕,iphone怎么录屏幕点击动作(苹果手机的屏幕录制步骤)...
  7. contos7改分辨率_centos桌面分辨率修改
  8. Cmder下载安装以及应用到Pycharm控制台
  9. JAVA程序设计(学堂在线-清华大学) 课后练习题 已更新完毕
  10. C++刷屏器(DevCpp-5.10编译通过)