SVN和Git对比

在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢? SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。 SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征。 ————————————————————————————————— 集中式版本控制系统: 版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。 集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。 分布式版本控制系统: 首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。 在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。 当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。 那么Git和SVN两者之间具体有哪些不同?下面详细做下对比: —————————————————————————————————————- 一、搞清楚两种模式:集中式VS分布式 (1)SVN属于集中式的版本控制系统 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 SVN的特点概括起来主要由以下几条: 1)每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;…

Continue Reading →

Posted in: CVS

SVN中检出(check out)和导出(export)的区别

一、check out跟check in对应,export跟import对应。 二、check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 三、export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。导出文件夹下没有.svn目录。

Continue Reading →

Posted in: SVN

Git的安装和配置

操作步骤 一、git官网下载git安装包 二、点击git.exe安装程序 三、点击next 四、根据自己的需要可以把需要安装软件全选上,点击next 五、由于这是个人使用所以选择第二项 六、默认选择 七、安装环境变量(一般程序安装完会默认加,否则进行以下操作) 八、验证是否安装成功 下载地址 https://git-scm.com/downloads 引用文章:https://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html

Continue Reading →

Posted in: Git

SVN执行clean up报错的解决方法

svn执行clean up后出现提示:svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted,svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。错误如下: 解决方法:清空svn的队列 1.下载sqlite3.exe。 2.找到你项目的.svn文件(隐藏文件夹),查看是否存在wc.db(数据库文件)。 3.将sqlite3.exe放到.svn的同级目录。 4.启动cmd执行sqlite3 .svn/wc.db…

Continue Reading →

Posted in: SVN

Windows下搭建SVN服务器

一、所需资源 VisualSVN Server:http://www.visualsvn.com/server/download/ 二、操作步骤 1、安装界面,各种下一步 2、安装完成后,打开VisualSVN Server Manager 3、Repositories右键创建SVN资源库 4、User下创建用户,在Repositories的Properties可控制全部用户/指定用户使用 5、右键项目Copy URL to Clipboard,可在本地的TortoiseSVN里面进行项目导入

Continue Reading →

Posted in: SVN