version control的简单认知
version control
版本控制是一种记录文件或文件集随时间变化的系统,以便您以后可以调用特定版本。对于本书中的示例,您将使用软件源代码作为受版本控制的文件,但实际上您可以使用计算机上的几乎任何类型的文件来执行此操作。版本控制,也被称为修订控制或源控制,是对文档的更改,管理计算机程序,大型网站,以及其他信息集合。更改通常由数字或字母代码标识,称为“修订号”,“修订级别”或简称“修订版”。例如,初始文件集是“修订版1”。进行第一次更改时,结果集为“版本2”,依此类推。每个修订都与时间戳和进行更改的人相关联。可以比较,恢复和某些类型的文件的修订,组织和控制修订的逻辑方法的需要几乎与编写存在一样长,但在计算时代开始时,修订控制变得更加重要和复杂。书籍版本和规范修订版的编号可以追溯到仅印刷版时代。今天,最有能力(以及复杂)的版本控制系统是在软件开发中使用的系统,其中一组人可以同时对相同的文件进行更改。
本地版本控制系统
很多人选择的版本控制方法是将文件复制到另一个目录(如果它们很聪明,可能是带时间戳的目录)。这种方法很常见,因为它非常简单,但也非常容易出错。很容易忘记你所在的目录并意外写入错误的文件或复制你不想要的文件。
为了解决这个问题,程序员很久以前就开发了一个本地VCS,它有一个简单的数据库,可以对文件的所有更改进行修订控制。
集中版本控制系统
人们遇到的下一个主要问题是他们需要与其他系统上的开发人员协作。为了解决这个问题,开发了集中版本控制系统(CVCS)。这些系统(例如CVS,Subversion和Perforce)具有包含所有版本化文件的单个服务器,以及从该中心位置检出文件的许多客户端。多年来,这一直是版本控制的标准。
此设置提供了许多优势,尤其是在本地VCS上。例如,每个人都知道项目中的其他人正在做什么。管理员可以对谁可以做什么进行细粒度的控制,管理CVCS比处理每个客户端上的本地数据库要容易得多。
但是,这种设置也有一些严重的缺点。最明显的是集中式服务器所代表的单点故障。如果该服务器停机一小时,那么在那个小时内,任何人都无法进行协作或将版本化更改保存到他们正在处理的任何内容中。如果中央数据库所在的硬盘损坏,并且没有保留适当的备份,那么您绝对会丢失所有内容 - 项目的整个历史记录,除了人们碰巧在本地计算机上发生的任何单个快照。本地VCS系统也遇到同样的问题 - 只要您将项目的整个历史记录放在一个地方,就有可能失去一切。
分布式版本控制系统
这就是分布式版本控制系统(DVCS)介入的地方。在DVCS(例如Git,Mercurial,Bazaar或Darcs)中,客户端不只是查看文件的最新快照; 相反,它们完全镜像了存储库,包括其完整的历史记录。因此,如果任何服务器死亡,并且这些系统通过该服务器进行协作,则可以将任何客户端存储库复制回服务器以还原它。每个克隆都是所有数据的完整备份。

此外,许多这些系统可以很好地处理他们可以使用的多个远程存储库,因此您可以在同一个项目中以不同的方式与不同的人群进行协作。这允许您设置在集中式系统中不可能的多种类型的工作流,例如分层模型。
version control的简单认知的更多相关文章
- Version Control/Git,SVN
一.Version Control 1.什么是Version Control 版本控制(Version Control)是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置 ...
- 版本控制 version control和团队协作
这些技术你可能暂时不会用到,但是一旦软件体量变大,开发人数增加,这就带来质变,需要借助一些工具或者技术才能完成这些复杂的工程. 你可以从最简单的情况思考,你可以对任何类型的文件进行版本控制,比如一个p ...
- 代码版本控制[version control]之Git
如何多人协同开发同一个项目? 使用代码版本控制[version control]软件, 目前市面上比较流行的代码版本控制器有: git,svn,csv 1. 使用git管理代码版本 本项目使用git管 ...
- about Version Control(版本控制)
what: 版本控制系统是一种软件,它可以帮助您跟踪代码随时间的变化. 在编辑代码时,您告诉版本控制系统对文件进行快照. 版本控制系统将永久保存该快照,以便在以后需要时可以收回它. 如果没有版本控制, ...
- Version Control 版本控制
一.version control是什么: version control版本控制,是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一. 二.versi ...
- version control(关于版本控制)
版本控制(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 这个系统可以自动帮我们备份文件的每一次更改,并且可以非常方便的恢复到 ...
- 关于 version control
1.什么是 version control 版本控制(Vevision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软体工程技巧,借此能在软体 ...
- xcode svn commit is not under version control (1) & git commit
使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于sv ...
- which type of VS files should be committed into a version control system
which type of VS files should be committed into a version control system? aps, no: last resource edi ...
随机推荐
- js中 变量的解构赋值
es6新特性, 提取数组或对象中的值,按照对应位置, 为变量赋值. let [a, b, c] = [1, 2, 3]; 交换变量的值变得容易 let x = 1; let y = 2; [x, y] ...
- Linux 的基本操作(系统用户及用户组的管理)
[认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...
- MySQL练习题1
以下SQL操作均在MYSQL上测试过 首先是表定义 1.创建student和score表 CREATE TABLE student ( id ) NOT NULL UNIQUE PRIMARY KEY ...
- jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典
1.锚点跳转简介 Edit 锚点其实就是可以让页面定位到某个位置上的点.在高度较高的页面中经常见到.比如百度的百科页面,wiki中的page内容. 我知道实现锚点的跳转有两种形式,一种是a标签+nam ...
- nginx配置https访问
一.准备 环境:centos6.8 nginx:1.13.6 二.开始 首先安装依赖包: yum install -y gcc gcc-c++ autoconf automake make ...
- MOT南京站 | 卓越研发之路:锻造顶级后端系统
代码是互联网企业信息化核心,也是众多研发团队智慧的结晶,如何将代码发挥到最大价值?如何用代码快.准.好的实现需求?相信这是很多IT从业者所困扰的问题. MOT南京站首期以『锻造顶级后端系统』为主题,我 ...
- maven工程下添加oracle驱动包
maven工程手动安装oracle驱动包到本地仓库 下载ojdbc.jar包 这个当然是最好去官网下载了.http://mvnrepository.com这个仓库上有,具体页面地址为: http:// ...
- Linux 安装python3.7.0
我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自 ...
- python基础之 异常处理和logging模块
1.异常处理 l = ['apple','admin','kobe'] for id,item in enumerate(l,1): print(id,item) try: choose_id = i ...
- cds view join和association
1:创建两张表:ztt_teacher01 和ztt_teacher02 用于 cds view中的join和association 2:创建两个cds view:ztt_teacher01_id_n ...