在开发中 git 是最经常使用的版本控制软件,在学习极客时间苏玲的《玩转 git 三剑客》前,对 git 的使用只停留在add
,commit
,pull
,push
上,稍微复杂点的checkout
就不会使用了。在一次项目中,用到了merge
,让我对git
充满了好奇,正好这时极客时间推出了 git 的课程, 我坚决果断的购买了。linux
虽然 git 已经烂大街了,再写关于 git 的文章也没什么价值了,但我仍是要本身写点文章,一方面记录本身学习的心得,另外一封面,也锻炼下本身的写做能力,吴军老师说过:要想让一我的会说,逻辑清晰,首先得会写。不少人肚子里有东西,可是说不出来,表达的别人看不懂,听者看来,和没有没太大区别。因此这也是锻炼本身的方式。git
版本控制可以追踪工程蓝图从诞生一直到定案的过程,确保由不一样人员所编辑的程序文件都能获得同步。服务器
最简单的版本控制是 copy 多份项目,并进行适当的编号,这种方法高度依赖开发者的自我纪律,很容易致使错误。
所以自动化的版本控制系统应运而生。分布式
大部分版本控制软件都采用差分编码,只保留文件相继版本之间的差别,减小存储空间。性能
一个项目中有好几给开发人员同时参与,若是两我的同时改变一个文件,而没有管理访问权限,就会形成代码冲突。
因此有两种方法:一、中央式系统,由中央管理访问权限;二、分布式系统,能够同时允许多个单位同时进行。学习
在版本控制系统出来以前是怎么开发的呢?编码
因此沟通成本很是高,项目集成效率低下。版本控制
以目录形式区别不一样版本的形式不只仅是过去,如今还存在,固然时代在发展,在这几十年当中有不少版本控制系统走入了咱们世界,其中像 cvs 和 vsn 这种集中式的控制系统,他曾经被不少团队和公司所接受。code
优势:这些特征使得集中式的版本控制系统,比起以前没有版本控制的项目,它的效率在集成方面是有明显的提升的。
缺点:客户端必须时刻和服务器相连,由于客户端不具有服务器端同样的目录结构。开发
有不少人认为,集中式的版本控制系统在速度上和性能上是不足的。后来基于集中式的版本控制系统的不足,开发了分布式的版本控制系统。
它们最大的区别是,服务端和客户端都有完整的版本库,脱离服务端,客户端照样能够管理版本,查看历史和版本比较等多数操做,都不须要访问服务器,比集中式的VCS更能提升版本管理的效率。
以上参考资料来自:维基百科 和 苏玲《玩转 git 三剑客》第一讲