git引入_版本控制介绍

八个字形容git技术: 公司必备,一定要会


一.git概念:

git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理从小型到大型的项目

二.什么是版本控制:

版本控制是一种一个记录一个或若个问价那内容变化,以便将来查询你特定版本修订情况的系统

三.为什么要使用版本控制:

软件开发中采用版本控制系统是个明智的选择

有了他你就可以将某个文件回溯到之前的状态,甚至将整个项目都退回过去某个时间点的状态

就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子

但额外增加的工作量却微乎其微,你可以比较文件的变化细节,查出最后是谁修改了那个地方,从而找出导致怪异问题出现的原因

四. 版本控制系统的分类

4.1 集中化的版本控制系统:代表svN

集中化的版本控制系统诸多如cvs,svn以及perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本
而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新,多年以来,这已成为版本控制系统的标准做法
这个做法带来了许多好处,现在每个人都可以在一定程度上看到项目中的其他人正在做些什么
而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易, 事分两面,有好有坏.这么做最明显的缺点是中央服务器的单点故障,如果服务器崩了一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作

4.2 分布式的版本控制系统

由于上面集中化版本控制系统的那些缺点,于是分布式版本控制系统面世了

在这类系统中,向git,bitkeeper等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整的镜像下来(每个客户端都是服务器)

更近一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互,这样你就可以在同一项目中分别和不同工作小组的人相互协作

这句话怎么解释呢.如图:

分布式的版本控制系统在管理项目时存放的不是项目版本在版本之间的差异,它存的是索引(所需磁盘空间很少所以没课客户端都可以放下整个项目的历史记录)

如果是集中化版本控制系统有1到100版本 那么想要回退到1版本只能从100打补丁到99 然后从99打补丁到98 ...所以要回滚到一会非常慢

如果是分布式版本控制系统: 最开始有个版本一 然后有个版本二下一次存储会将版本一和版本二的索引进行存储 所有到100也可以通过索引来回滚到版本一 但是后面越来越多 所以底层实现了极致的压缩算法,解压算法,这样会站的内存非常小

原文地址:https://www.cnblogs.com/whc6/p/13970246.html