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

文章目录

*
前言
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

相关文章推荐

1、SVN简介

SVN是什么

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

SVN相比于Git的优势

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

主要应用场景

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

2、SVN仓库

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

https://svnbucket.com

3、SVN客户端

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

  1. 打开网址https://svnbucket.com,注册登录账号
  2. 点击下载SVN客户端
    【图文详解】入职必备——SVN使用教程
  3. 点击官网下载
    【图文详解】入职必备——SVN使用教程
  4. 点击按钮,就自动进行下载了
    【图文详解】入职必备——SVN使用教程
  5. 下载完成后,进行安装,无脑下一步就安装成功了(可以选择安装路径)
    【图文详解】入职必备——SVN使用教程

; 4、SVN基础操作

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

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

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

【图文详解】入职必备——SVN使用教程
创建一个需要检出的文件夹:
【图文详解】入职必备——SVN使用教程
接着,填写刚刚注册时候的用户名和密码:
【图文详解】入职必备——SVN使用教程
此时,svnbucket文件夹中的文件(代码)都可以提交到 服务端
【图文详解】入职必备——SVN使用教程
我们在该文件夹中添加两个txt文件,鼠标右键,单击SVN Commit…进行提交
【图文详解】入职必备——SVN使用教程

【图文详解】入职必备——SVN使用教程
提交之后就可以到SVN仓库中查看提交的内容了:
【图文详解】入职必备——SVN使用教程

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

【图文详解】入职必备——SVN使用教程
然后在文件所在页面鼠标右键,单击SVN Commit…(提交之前单击SVN Update先进行更新,这样可以 避免冲突
【图文详解】入职必备——SVN使用教程
此时我们去SVN仓库查看xzb.txt文件,发现内容修改成功!

5、撤销和恢复

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

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

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

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

【图文详解】入职必备——SVN使用教程
此时这次撤销操作只是在本地撤销,还需要 提交到服务端,这样才算真正撤销成功了!

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

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

; 6、添加忽略

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

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

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

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

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,然后按照下图操作就创建好分支了:

【图文详解】入职必备——SVN使用教程
【图文详解】入职必备——SVN使用教程
此时我们更新一下,就会发现branches中出现了分支,接着我们把onlinev1.0和trunk文件 重新检出到workspace文件夹中,鼠标右键查看属性就能得到这两个文件的URL:
【图文详解】入职必备——SVN使用教程
然后根据URL 检出SVN Checkout… 到workspace文件夹下,将svnbucket文件夹删除后,我们只有一个主干和一个分支:
【图文详解】入职必备——SVN使用教程
此时主干和分支的修改操作,相互之间并没有影响!

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

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

【图文详解】入职必备——SVN使用教程
将此版本合并到 svnbucket-trunk,这样就合并完成了!

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

【图文详解】入职必备——SVN使用教程
【图文详解】入职必备——SVN使用教程
此时另一个分支创建完成了,接下来我们从1.0分支切换到2.0分支:
【图文详解】入职必备——SVN使用教程
【图文详解】入职必备——SVN使用教程

; 9、代码暂存

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

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

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

【图文详解】入职必备——SVN使用教程
【图文详解】入职必备——SVN使用教程
取消暂存的方式也很简单:
【图文详解】入职必备——SVN使用教程
【图文详解】入职必备——SVN使用教程

Original: https://blog.csdn.net/weixin_46594796/article/details/118440067
Author: Coder Xu
Title: 【图文详解】入职必备——SVN使用教程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/778148/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python3 五子棋

    import sys import pygame import math class FiveInARow(): def __init__(self): pygame.init()…

    Python 2023年9月24日
    033
  • django1

    课程特点 学习建议: 课程划分: 起源与应用 虚拟环境(自行扩展) 安装 起源&应用 2005年发布,采用Python语言编写的开源web框架 早期的时候Django主做新…

    Python 2023年6月3日
    083
  • 【YOLOV5-6.x讲解】数据增强方式介绍+代码实现

    主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本…

    Python 2023年9月28日
    099
  • Wenet分布式训练对学习率调整的影响

    Wenet分布式训练对学习率调整的影响 背景 分布式训练收敛速度和学习率变化的关系 Wenet学习率调整策略分析 Wenet Warmup学习率源代码分析 模拟Wenet 预热学习…

    Python 2023年10月28日
    062
  • 论文复现|Panoptic Deeplab(全景分割PyTorch)

    摘要:这是发表于CVPR 2020的一篇论文的复现模型。 本文分享自华为云社区《Panoptic Deeplab(全景分割PyTorch)》,作者:HWCloudAI 。 这是发表…

    Python 2023年10月24日
    060
  • 单片机扫盲

    一、从电路到集成电路 集成电路:使用微器件为”积木”,去搭建一个具备一定功能的电路板微器件出现之前,一个电路功能需要很大一块电路板才能实现,有了微器件电路板…

    Python 2023年9月29日
    055
  • Python爬取全球最大视频网站YouTube视频

    前言 作为目前全世界最大的视频网站,它几乎全是用Python来写的该网站当前行业内在线视频服务提供商,该网站的系统每天要处理上千万个视频片段,为全球成千上万的用户提供高水平的视频上…

    Python 2023年11月9日
    044
  • 快速绘制流程图「GitHub 热点速览 v.22.47」

    画流程图一直是研发的一个难题,如何画得通俗易懂已经够让人头疼了,还要美观大方。用 d2 的语法描述下流程,d2 会自动帮你生成一张配色极佳的流程图。说到研发的选择,本周特推的 ch…

    Python 2023年10月13日
    046
  • JS模块化

    模块化规范 1.CommonJS规范 ​ 在node中,默认支持的模块化规范叫做CommonJS, ​ 在CommonJS中,一个js文件就是一个模块 CommonJS规范 引入模…

    Python 2023年10月13日
    037
  • python3 pygame中画线实例_如何在pygame中画线和改变颜色?

    我要做的是painting_module() def painting_module(): running = True while running: clock for timi…

    Python 2023年9月24日
    029
  • Ubuntu 使用conda安装python虚拟环境并进行yolo-fast训练

    简介 Conda:是一种通用包管理系统,当然包含管理Python(支持linux, mac, win) Anaconda:是一个开源的Python发行版,包含了conda、pyth…

    Python 2023年9月7日
    068
  • Mac 下virtualenv pipenv venv conda 区别解读 及 conda 安装 uwsgi 注意事项

    两个环境 版本环境 版本环境的意思是可以控制当前python的全局版本号以及所有跟此版本号有关的lib 虚拟环境 为了隔离不同项目所依赖的python包,避免所有的项目依赖的包都放…

    Python 2023年9月8日
    069
  • Retinanet网络详解

    Retinanet 网络结构详解以及源代码讲解 网络backbone使用ResNet【18, 34, 50, 101, 152】 FPN层 首先输入的照片的大小为672×…

    Python 2023年8月2日
    061
  • Python Scrapy框架学习笔记

    基本步骤 创建工程 scrapy startproject 工程名 创建爬虫文件 scrapy genspider 爬虫文件名 www.xxx.com 或者 scrapy gens…

    Python 2023年10月5日
    048
  • netty系列之:在netty中使用proxy protocol

    我们知道proxy protocol是haproxy提出的一个代理协议,通过这个协议,所有实现这个协议的proxy或者LBS,都可以附带真实客户端的IP地址和端口号,这使得prox…

    Python 2023年10月14日
    030
  • 天呐,我居然可以隔空作画了

    摘要:本案例将使用YOLOX、SCNet两个模型,实现一个简单的隔空作画趣味应用 本文分享自华为云社区《ModelBox开发案例 – 隔空作画》,作者:吴小鱼。 本案例…

    Python 2023年10月25日
    034
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球