SVN入门图解教程(超详细)

一、总结

一句话总结:

二、SVN入门教程

1. 什么是SVN

SVN全名Subversion,即版本控制系统。SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。

作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。

这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。

Git – 版本控制系统。

SVN是集中式,Git是分布式。

1.1. SVN工作原理

1.2. 我们使用SVN能做什么?

1、 多人共享同一的资源,并且可以对资源实现修改和更新;

2、 记录资源的每一次变更,以及记录更改该资源的人,并且可以恢复到之前的任何一个修改点;

2. 安装

SVN的安装分为2部分,第一部分是服务端安装,第二部分的客户端安装。

注意:一般情况下,我们只需要安装客户端即可,因为在企业中服务端是否运维来维护的,我们只需要开通一个账号即可。

常用的客户端又分为2种,第一种是安装在操作系统中的客户端,另外一种是Eclipse的插件。

2.1. 服务端安装(windows)

选择相应的文件安装。

安装完成后会在系统服务中有SVN服务项,并且默认是开机启动。

打开管理工具:

至此,服务端安装完成。

2.2. 客户端安装

先安装客户端,再安装语言包。

点击右键查看是否有SVN选项。

接下来安装语言包:

选择中文:

中文生效:

此处客户端安装完成!

2.3. Eclipse插件安装

3. 创建资源库和用户

3.1. 创建用户

3.2. 创建资源库

资源库:用户提交文件到SVN,存放文件的仓库。

我们选择自定义权限:

创建完成:

测试:

资源库创建完成。

3.3. 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”项即可。

4、share Project(共享工程):ecplise中的操作

把一个非svn的工程,上传到svn中。

3.4. 使用客户端访问

测试导入文件:

搞定。

4. SVN协议

访问SVN资源库的协议通常有三种:

1、 http

a) 客户端和浏览器都可以访问。

2、 https

a) 客户端和浏览器都可以访问,同时比http更安全。

3、 svn

a) 只能通过客户端访问。

5. 资源仓库

SVN资源仓库中有三个非常重要的目录,trunk(主干)、branches(分支)、tags(标签),其作用是:

这三个目录,都是可以存放文件的,只是在功能方面有一些区别(只是约定):

trunk:一般的项目都是基于主干开发的。

branches:分支,一般用于有某些开发功能时,需要基于主干开分支,开发完成后要合并到主干。

tags:标签,项目开发完成后,发布上线时,需要将主干的代码打标签到tags中,一般情况下,tags的内容是只读的。

这三个目录在实际项目开发过程中的应用:

Release:发行版,稳定版。

RC:Release.Candidate发行候选版本。

6.  SVN项目实战

在企业开发过程中,更为常用的是通过Eclipse的插件来管理文件版本。

6.1. 在Eclipse中创建SVN连接

创建svn 的资源库连接。

6.2. 将项目发布到SVN的trunk

分别创建trunk、branches、tags:

与资源库进行同步(比较不同):

这么多内容都是应该提交到SVN的吗?

不是的,对于Maven项目而言,只提交src和pom.xml即可。

只需要项目相关的内容。

提交pom.xml

只去提交src里面的内容和pom.xml文件

每次执行与资源库同步时都会有以上内容,会影响每次提交的选择,所以可以选择将这些目录文件忽略掉。

6.3. 忽略指定的资源

6.3.1. 全局指定

6.3.2. 单个指定

删除忽略:

6.4. 提交代码

当我们在本地将代码修改后需要提交到SVN仓库,以便别人可以获取到最新的代码。

注意:不建议直接提交,因为该文件可能会被其他人修改,从而造成冲突,推荐在提交(更新)之前先执行与资源库同步。

 

 

 

6.5. 更新代码

6.6. 冲突解决

 

6.7. 冲突解决(难点亦是重点)

什么是冲突?

冲突就是在同一个版本基础之上,多个人对该文件修改了修改,其中一个人将文件提交到SVN,这时,该文件已经是新的版本,但是,其他人的本地还是旧的版本,

这时,其他人并不知道该文件已经有了新的版本,执行提交操作,这时就产生了冲突。

解决冲突的核心思想:为了避免冲突,要在最新的版本之上修改(也就是说修改之前先更新),再提交。

如果我更新了之后,在编写代码的同时别人将该文件再次更新(我不可能时时刻刻都查看更新),这时直接提交会造成冲突,正确的做法是:提交之前将该文件先执行与资源库同步操作,先将冲突解决掉再提交代码。

接下来就需要讨论下个话题了,如何解决冲突?

首先要先明确,解决冲突是不能通过工具自动完成的,必须人工完成,当然了,可以借助工具辅助完成。

下面,演示冲突的解决过程:

6.7.1. 制造冲突

在Eclipse中将文件内容修改,用于模拟用户1修改文件:

然后,在桌面中的目录中修改该文件,用于模拟用户2修改文件:

这时,先将桌面中的文件提交:

提交成功。

在Eclipse中将项目与资源库同步:

6.7.2. 解决冲突(关键内容来了)

0、选择team 与资源库同步

1、 双击打开该文件,查看冲突的内容

2、 将远程更新的内容写到本地

3、 将该文件标记为合并(注意,一定是已经处理完冲突了才能标记,要不然会将服务端的文件覆盖掉)

4、 现在,就可以大胆的提交了

6.8. 冲突的另一种解决方案

有些时候可能会是这种情况:

服务端文件的内容被大量的修改,如果按照上面的方法一个个解决,非常的麻烦,这时你可以尝试以下的解决方案:

1、 备份本地的文件

2、 将该文件执行 还原 操作,并且再执行 更新 操作(也就说,放弃自己的修改,更新到最新的版本)

3、 将备份文件中修改的内容,拷贝(不是全部啊,只是自己修改的部分内容)回该文件,再执行提交就OK了。

总结:这种解决方案的核心思想是,放弃自己的修改,把本地文件更新到最新版本,在最新版本基础之上修改,并且提交。

6.9. 冲突解决

本地修改了代码,服务器做了更新,

7. 新检出的项目 ,转换成 maven 工程

8. svn的操作整理

冲突的解决:

建议,如果本地的代码出现了 * ,本地代码和服务器代码不一致。 不要去做更新的操作。

去做与资源库同步的操作。

可以确定冲突的文件。 解决冲突。

推荐:把自己的代码,进行本地备份,然后删除工作空间中的代码,进行还原,并且更新。

然后把本地本分的代码和工作空间的代码进行比对,合并

在做提交。

9. 打分支

 

SVN入门图解教程(超详细)的更多相关文章

  1. Python入门教程 超详细1小时学会Python

    Python入门教程 超详细1小时学会Python 作者: 字体:[增加 减小] 类型:转载 时间:2006-09-08我要评论 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Ja ...

  2. Python入门教程 超详细1小时学会Python

    Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...

  3. exe电子书制作教程(超详细)【申明:来源于网络】

    exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html

  4. MyCat安装与测试教程 超详细!

    MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...

  5. Python入门教程 超详细1小时学会Python(转)

    假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows ...

  6. JDK的下载及安装教程图解(超详细哦~)

    一.本人电脑系统介绍及JDK下载途径 1.先说明一下我的电脑为win10系统,64位操作系统~ 2.我选择下载的JDK版本为1.8版本.给大家来两个下载渠道,方便大家的下载~ JDK官网:https: ...

  7. Python入门指南(超详细)

    Python 是一门非常容易上手的语言,通过查阅资料和教程,也许一晚上就能写出一个简单的爬虫.但 Python 也是一门很难精通的语言,因为简洁的语法背后隐藏了许多黑科技.本文主要针对的读者是: 毫无 ...

  8. windows环境下elasticsearch安装教程(超详细)

    一.安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持.所以要先安装JAVA环境. 由于ElasticSearch 5.x 往后依赖于JDK 1.8的 ...

  9. Docker实例教程[超详细](一)

    Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互 ...

随机推荐

  1. 【Codeforces Round #455 (Div. 2) C】 Python Indentation

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 一个for循环之后. 下一个写代码的地方一是从(x+1,y+1)开始的 然后如果写完了一个simple statement 下次就有 ...

  2. C# 反射基础运用

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型 (包括类.结构.委托.接口和枚举等)的成员和成员的信息. 其实有些人会问, 像我们平常引用DLL可以直接用, 为什么要用 ...

  3. CSS3制作W3cplus的关注面板

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  4. 使用knockout.js 完毕template binding

    //1.template <script id="txn-details-template" type="text/html"> <!--St ...

  5. 4.Windows下安装ZooKeeper

    转自:https://www.cnblogs.com/mstmdev/p/5612791.html 官方主页: https://zookeeper.apache.org/     选择合适的镜像地址下 ...

  6. Rdis-主从复制

    配置 配置一个从服务器非常简单, 只要在配置文件中增加以下的这一行就可以了: slaveof 192.168.1.1 6379 注:主:bind 192.168.10.1 (指定主机IP) 当然, 你 ...

  7. hibernate 注解配置<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. [React & Debug] Quick way to debug Stateless component

    For example we have the following code: const TodoList = (props) => ( <div className="Tod ...

  9. 使用Tomcat发布war包

    第一步:下载tomacat 1.下载地址:http://tomcat.apache.org 2.解压后目录如下 3.双击bin文件夹下startup.bat 即可启动tomcat, 计算机会弹出控制台 ...

  10. Altium Designer如何统一改变pcb状态下的原件标号位置

    原创 我用的是Altium Designer16版本 变成 步骤如下: 选中标号 右击 下边一步很重要: 点击应用和确定 在之后弹出的对话框中选则你要改变的位置,我这里是把标号改变到原件的右侧: 等待 ...