版本控制

在开发中 git 是最经常使用的版本控制软件,在学习极客时间苏玲的《玩转 git 三剑客》前,对 git 的使用只停留在addcommitpullpush上,稍微复杂点的checkout就不会使用了。在一次项目中,用到了merge,让我对git充满了好奇,正好这时极客时间推出了 git 的课程, 我坚决果断的购买了。linux

虽然 git 已经烂大街了,再写关于 git 的文章也没什么价值了,但我仍是要本身写点文章,一方面记录本身学习的心得,另外一封面,也锻炼下本身的写做能力,吴军老师说过:要想让一我的会说,逻辑清晰,首先得会写。不少人肚子里有东西,可是说不出来,表达的别人看不懂,听者看来,和没有没太大区别。因此这也是锻炼本身的方式。git

什么是版本控制

版本控制可以追踪工程蓝图从诞生一直到定案的过程,确保由不一样人员所编辑的程序文件都能获得同步。服务器

最简单的版本控制是 copy 多份项目,并进行适当的编号,这种方法高度依赖开发者的自我纪律,很容易致使错误。
所以自动化的版本控制系统应运而生。分布式

大部分版本控制软件都采用差分编码,只保留文件相继版本之间的差别,减小存储空间。性能

中央式系统和分布式系统

一个项目中有好几给开发人员同时参与,若是两我的同时改变一个文件,而没有管理访问权限,就会形成代码冲突。
因此有两种方法:一、中央式系统,由中央管理访问权限;二、分布式系统,能够同时允许多个单位同时进行。学习

版本控制系统演变历史

在版本控制系统出来以前是怎么开发的呢?编码

  1. 在服务器上面将文件共享出来,各自建个文件夹,以目录拷贝的方式来区分不一样的人开发的东西;
  2. 本身开发的东西也经过这种文件夹的形式标出1.0、2.0、3.0;
  3. 这种方法你们开发的公共文件是很容易被覆盖的,
  4. 还有我在开发的时候,我得不停的跟人家说,我在开发这个,大家先别动,

因此沟通成本很是高,项目集成效率低下。版本控制

以目录形式区别不一样版本的形式不只仅是过去,如今还存在,固然时代在发展,在这几十年当中有不少版本控制系统走入了咱们世界,其中像 cvs 和 vsn 这种集中式的控制系统,他曾经被不少团队和公司所接受。code

集中式的版本控制系统,它有什么样的特征呢?

  1. 有集中的版本管理服务器,这个服务器存放了每一个文件或者文件夹的演变历史。也就是,哪天你本地没有这个项目,你去服务器取也是很是容易的。提供了历史版本的搜索能力,以及不一样版本之间比较的能力。
  2. 具有文件版本管理和分支管理能力。可让不一样的分支作集成,

优势:这些特征使得集中式的版本控制系统,比起以前没有版本控制的项目,它的效率在集成方面是有明显的提升的。
缺点:客户端必须时刻和服务器相连,由于客户端不具有服务器端同样的目录结构。开发

有不少人认为,集中式的版本控制系统在速度上和性能上是不足的。后来基于集中式的版本控制系统的不足,开发了分布式的版本控制系统。

它们最大的区别是,服务端和客户端都有完整的版本库,脱离服务端,客户端照样能够管理版本,查看历史和版本比较等多数操做,都不须要访问服务器,比集中式的VCS更能提升版本管理的效率。

git 特色

  1. 最优的存储能力
  2. 非凡的性能,得益于林纳斯是很是有喜的linux内核专家以及文件系统管理专家
  3. 开源的
  4. 很容易作备份,支持离线操做
  5. 很容易定制工做流程

一个学习 git 的网址

以上参考资料来自:维基百科 和 苏玲《玩转 git 三剑客》第一讲

相关文章
相关标签/搜索