版本控制系统(VCS)简介

简介

版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。版本控制系统通常分为本地版本控制系统、集中式版本控制系统、分布式版本控制系统。

本地版本控制系统

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单,但是特别容易犯错。有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。

其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。 甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。 它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。

集中式版本控制系统

对于如何让不同系统上的开发者协同工作,本地版本控制系统显然力不从心。于是,集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,特别是相较于老式的本地 VCS 来说。 现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。事分两面,有好有坏。 这么做最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,简称 DVCS)的面世解决了CVCS单点故障的缺陷。在这类系统中,像Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9944409.html

时间: 2024-11-13 07:54:59

版本控制系统(VCS)简介的相关文章

Git版本控制系统VCS

Git版本控制系统VCS 一.版本控制系统基本情况说明 版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1.作用 记录文件的所有历史变化 随时可回复到任何一个历史状态 多人协作开发或者修改 错误恢复 多功能的并行开发(分支功能.特性-合并操作) 2.分类 本地版本控制系统(local VCS) 集中化的控制系统(Centralizes VCS) 分布式的版本控制系统(Distributed VCS) 3.基本概念 repository——存放所有文件及历史信息

SVN源代码的版本控制系统使用简介

SVN是以个开放源代码的版本控制系统,当前最流行的版本控制系统,GIT是近段时间刚兴起的. 下面开始介绍如何安装也配置 1先下载或者从别的地方弄一个安装包(本人是64位的,32位的就用32位的安装包) 2双击打开安装 这里没截图了,就是按部就班的安装没有什么可说的 3安装完成后 4 点击操作点击新建,新建一个文件 点击customize permissions 单击Add,出现一个弹窗,再点击Create user,注册一个账号密码 之后点完成 再安装这个软件 双击打开 然后就点Next直接安装

iOS - Git 分支(分布式版本控制系统)

前言 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线.在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创建一个源代码目录的副本.对于大项目来说,这样的过程会耗费很多时间. 有人把 Git 的分支模型称为它的"必杀技特性",也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出.为何 Git 的分支模型如此出众呢?Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分

git(版本控制系统)的使用

git的简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 集中式版本控制系统(svn): 中间是中央服务器,其他所有电脑都需要从中checkout代码下来.只有中央服务器管理着各个版本的代码.其他电脑需要操作时都要和中央服务器交互.如果中央服务器离线或者故障,其他电脑就没法与中央服务器交互. 分布式版本控制系统(git): 分布式每一台电脑都有版本的Database,就不用担心中央服务器离线或者故障.因为本地就有版本的Database,所以可以实现离线操作

[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境【转】

转自:http://www.cnblogs.com/yubinfeng/p/5182271.html 前面介绍了两款代码管理工具VSS和SVN,这两种管理工具在很长一段时间曾为我们的代码管理提供了便利,本篇介绍一款思维方式完全不同(也可以说不合常理)的版本控制系统——Git.可以说Git目前非常火,这与设计者剑指偏锋的设计思想有很大关系.Git采用发散的思维管理代码,最大的特点就是分布式,他可以让来自不同地区的开发者共同完成一个作品,让每个开发者都可以发挥个性,同时又可以由发起者(即项目管理者)

SVN 项目的版本控制系统 从零开始到导入项目至版本库

陈科肇 ================ 1.简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统. 对一个项目的管理也是举足轻重的,SVN提供了一个服务器,你可以把开发的项目配置至SVN服务器.那么众多的开发人员就可以从SVN服务器签出项目进行开发,项目一旦签出你就可以在线更改提交或者离线编辑项目,这样你就可以很轻松地把签出来的项目带回家编辑修改,待到上班日时,再将项目提交到SVN服务器,这是一个方便之处.除了可离线修改项目的优点外,SVN还可以进行回滚操作,即如果你修改项

Git 版本控制系统

版本控制系统 版本控制 版本控制(Version Control)的作用是追踪文件的变化.为什么需要版本控制?简单说,就是当你出错了,可以很容易地回到没出错时的状态. 你可能已经在不知不觉中,布置了自己的版本控制系统.比如,创建了类似下面这样的文件名: 论文_0510.doc 论文_0514.doc 论文_0521.doc 论文_修改版.doc 论文_最终不修改版.doc 这就是软件中为什么有"Save As"命令的原因.它使得你可以在不破坏源文件的基础上,得到一个类似的新文件.文件的

版本控制系统

版本控制系统(Version Control System, VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化. 分布式版本控制系统(Distributed version control system, DVCS)也是这样,它的主要目标仍然是帮助记录和跟踪项目中所做的修改.而它与传统版本控制系统的区别在于,开发人员相互同步修改内容的方式不同. 版本库 The Repository 版本库(Repository)是版本控制系统用来存储所有历史数据的地方. 大多数版本控制系统在版本库中存储

Centos 7.X 部署基于Git&Gitolite的分布式版本控制系统

1.简介 1.1 git 简介 Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码.2005年,为了解决Linux系统的源码开发管理这一问题,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git,目前世界上最先进的分布式版本控制系统. 2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无