Git学习——1.1 关于版本控制
2015-01-05 20:41
260 查看
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
其中最流行的一种叫做 rcs,现今许多计算机系统上都还看得到它的踪影。甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。它的工作原理基本上就是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。所以,根据每次修订后的补丁,rcs
可以通过不断打补丁,计算出各个版本的文件内容。
这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:中央服务器的单点故障。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端偶然提取出来的保存在本地的某些快照数据就成了恢复数据的希望。本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。
在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。
本地版本控制系统
其中最流行的一种叫做 rcs,现今许多计算机系统上都还看得到它的踪影。甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。它的工作原理基本上就是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。所以,根据每次修订后的补丁,rcs可以通过不断打补丁,计算出各个版本的文件内容。
集中化的版本控制系统
这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:中央服务器的单点故障。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端偶然提取出来的保存在本地的某些快照数据就成了恢复数据的希望。本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。
分布式版本控制系统
在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。
相关文章推荐
- GIT学习笔记——1.1 起步 - 关于版本控制
- 【Git学习笔记】1.1 - 关于版本控制
- 【Git学习笔记】1.1 - 关于版本控制
- Git学习系列(一)——关于版本控制
- 1.1开始学习 - 关于版本控制
- 【转】分布式版本控制工具学习--Git
- 1.1 起步 - 关于版本控制
- Git版本控制管理学习笔记1-介绍
- Git版本控制管理学习笔记5-提交
- 关于GIT 版本控制
- GIT 版本控制命令学习
- OS(关于版本控制)使用git 创建远程仓库-熟知这些命令行,带你装逼带你飞!
- 分布式版本控制工具学习--Git
- puppet学习之使用git实现puppet版本控制
- Git版本控制管理学习笔记4-文件管理和索引
- GIT 版本控制常用命令学习汇总
- Git学习系列(九)—— Git的版本控制的最佳实践
- git学习 - 忽略版本控制文件
- Git版本控制管理学习笔记2--起步
- 学习OPENGL的官方指南:版本1.1——关于