2020年7月6日

为什么需要版本控制?

  • 需要清晰地保存某些文件的不同修订版本
  • 控制文件的发屐过程,找出导致 BUG 的原因
  • 轻松将项目或文件恢复到指定版本
  • 极大方便团队之间协同开发,防止出现混乱
  • 在工作中,时刻谨记“数据无价,再怎么备份也不足为过

SVN简介

SVN全称SubVersion,他属于C/S结构软件,SVN是一个自由与开源的版本控制系统。操作简单,入门容易、支持跨平台操作。它采用了分支管理系统。

服务端软件:VisuaISVN

客户端软件:Tortoisesvn

特点:

  • 操作简单,入门容易
  • 支持跨平台
  • 支持版本回退

作用:

  • 协作开发
  • 远程开发
  • 版本回退

svn的使用

安装svn,汉化后需要重启。

新建一个文件夹。svn介绍,然后此文件夹中新建一个文件夹svn版本库

右键,在此创建版本库。(这个就是我们的代码库)

  1. 选中程序员A,然后检出,版本库地址选版本库,然后检出到程序员A

  2. 然后程序员A新建了一个程序员1。

  3. 然后程序员B检出版本库。这样程序员B就有了程序员A的代码。

  4. 然后程序员B提交了自己修改后的代码。

  5. 然后程序员A进行svn更新。此时,就是程序员B修改后的代码。

  6. 然后程序员C进行检出版本库,那么此时就是B修改后的代码。

  7. 程序员C新建了一个程序员3.txt文件、

  8. 右键,然后提交svn。

  9. 接下来。程序员A或者程序员B直接更新,就可以获取到程序员3.txt

  10. 新建一个程序D,然后,检出。这样我们就有的了版本库中最新的代码。

  • 添加文件:找到随便一个受svn控制的文件夹,在里面放你的文件,然后在这个受控制的文件上右键,提交即可实现。

  • 删除文件:右键选择文件,点击删除(是svn里面的删除按钮),然后必须返回上级文件夹右键提交。

  • 重命名:右键,选择svn里面的重命名,然后返回到上级目录后,进行svn提交。提交后,其他的文件就可以更新到最新的了。

  • 移动:右键找到svn的"版本库浏览器",随意拖拽文件的位置即可实现文件的移动效果。(注意:如果是在服务器的版本库浏览器设置,直接可以实现一个默认的提交,如果不是在服务器的版本浏览器设置,就必须回到上级目录点击提交才可以)

  • 获取历史版本:更新至版本,右键——更新至版本——显示日志——找到想要的版本。点击确定即可。

svn的几个操作说明:

1、Check out(检出):从服务器端取得代码

把服务器资料库里存放的某个项目代码取出来,放到本地主机中,这个动作叫做“check out”。使用具体步骤:进入要安装项目文件的目录中,点击鼠标右键,选择SVN Check out项,然后填写项目的原始路径和安装路径后点击“ok”即可。

2、Update(更新):更新项目代码

以前checkout过的一个项目代码,当服务器上有了更新的代码,或者本地代码损坏或丢失,update可以自动判断本地哪些文件较旧,或者缺少,都会自 动更新。当然,你也可以删除掉本地代码,重新check out。使用具体步骤为:在要更新的项目上点击鼠标右键,选择“SVN Update”项即可。

3、Commit(提交):将本地代码上传到服务器

当修改(增加,删除,修改等所有写操作)过本地代码后,这个动做会把新代码提交到SVN。如果本地代码做了修改,不执行commit操作,SVN服务器上是 不会有这个新版本的,也就是说其它人也得不到。对代码做过修改后,应尽快commit。使用具体步骤:在修改完待上传的项目上点击鼠标右键,选择 “SVN Commit”项即可。

版本冲突如何解决

原因:多个用户对同一个仓库进行了更改。这样就存在冲突了。

解决方案:右键,编辑冲突。然后保存,然后标记一下,解决冲突。这样就可以了。

在开发冲突的时候,我们尽量避免解决冲突。最好每次先更新,然后提交。

SVN的基本使用的更多相关文章

  1. svn 常用命令总结

    svn 命令篇 svn pget svn:ignore // 查看忽略项 svn commit -m "提交说明" // 提交修改 svn up(update) // 获取最新版本 ...

  2. svn常用命令

    1.新建版本库 [root@localhost repos]# mkdir -p project [root@localhost repos]# svnadmin create project [ro ...

  3. 对Maven、gradle、svn、spring 3.0 fragment、git的想法

    1.Maven Maven可以构建项目,采用pom方式配置主项目和其他需要引用的项目.同时可结合spring3.0的新特性web  fragment. 从现实出发,特别是对于管理不到位,程序员整体素质 ...

  4. 电脑新建svn仓库

    步骤1:安转svg: 注意事项: 安装的时候选择:Modify 安装到以下图片的步骤时: 黄色区域选择: 步骤2:新建svn仓库文件夹(本教程例子:D:\svn-5gpos),选择文件夹右键,点击下图 ...

  5. 项目持续集成环境(jenkins + SVN + maven + tomcat)

    整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...

  6. Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

    所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...

  7. ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)

    主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Ar ...

  8. [开源]QuickSwitchSVNClient,快速完成SVN Switch的工具

    在实际的开发中,我们一般使用SVN工具进行源代码的管理.在实际的产品开发中,根据项目的一些定制要求,往往需要对某一些代码的修改,但是又不想影响主要的开发,这个时候需要对当前的主分支做一些分支处理(br ...

  9. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  10. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)

    前言     但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...

随机推荐

  1. Hadoop之HDFS常用文件操作命令

    命令基本格式:hadoop fs -cmd < args > 1. ls 列出hdfs文件系统根目录下的目录和文件hadoop fs -ls /dirhadoop fs -ls -R /d ...

  2. node 学习资源网址---存根

    Node.js 使用场景 & 实战 Node.js雪球实战半年谈 雪球上的 Node.js 国内有哪些网站使用了 Node.js Node.js & Uber Node.js 的优势和 ...

  3. Spring Boot使用AOP的正确姿势

    一.为什么需要面向切面编程? 面向对象编程(OOP)的好处是显而易见的,缺点也同样明显.当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录.性能监控等,如果采用面向对象编程的方法, ...

  4. Monster Audio 使用教程(二)效果参数的保存

    点击左上角主菜单按钮,点击[保存]菜单,即可保存当前的所有效果参数. [另存为]菜单,则是把当前参数另存一个名称,然后通过[切换效果]菜单,实现效果的切换.  独立保存单个音轨的效果 点击音轨对应的[ ...

  5. 使用 flask 构建我的 wooyun 漏洞知识库

    前言 最近在学 flask,一段时间没看,又忘得差不多了,于是弄这个来巩固一下基础知识 漏洞总共包括了 88820 个, Drops 文章总共有 1235 篇,全来自公开数据,在 Github 上收集 ...

  6. Java+MySQL企业级实训全套课程

    总纲 JAVA基础部分 教学视频:第一讲:Java入门与环境搭建    提取码:h9vm第二讲:变量与运算符    提取码:928t第三讲:顺序结构及条件结构    提取码:3v1l第四讲:while ...

  7. python从放弃到放弃

    本文目录 第一篇:python基础 第二篇:数据类型 第三篇:文件处理 第四篇:函数 第五篇:模块与包 第六篇:常用模块

  8. laravel 缓存相关常用操作

    //----------设置缓存----------- //Cache::put($key,$val,$minutes); 如果$key已存在,则覆盖原有值 Cache::put('name', '张 ...

  9. circle踢人(约瑟夫环) c++

    这里更新指针法,真的每句都是坑 (寥寥数十句,句句都是坑) // // Created by snnnow on 2020/4/12. //question:转圈,一共N个人,数到M的出列,求最后一个 ...

  10. 统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现。

    问题 统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现. 代码 code segment assume cs:code org 100h main proc ne ...