说起来也挺有意思,笔者原先接触Git的原因不是想学习Git本身的版本控制技术,而是为了学习计算机英语,为了能够锻炼学习原始英语视频的能力,于是从Lynda上面下载了一个关于Git系列的英语视频教程,Git之旅便从此拉开序幕.
在很早之前接触过Git,但当时也只是蜻蜓点水,并没有进行深入的了解.接下来我要做的是将笔者学习Git的一些经历和经验与大家分享,分享是一种更有效的学习方式.
我学习Git的方式是主要通过以下三种进行的:
- Lynda的Git视频.
- Git官方手册等参考文档.
- 实际操作.
由于Git自身优秀的特点以及CVS,SVN的局限,现在很多的企业都已经着手开始向Git进行转变.所以学习Git 也是大势所趋,紧跟时代潮流.
说到版本控制,相信大家都不陌生,最简单的版本控制例如我们经常用的Ctrl+Z和Ctrl+Z.版本控制的核心是跟踪变化.为了能够从一个宏观来了解Git,我们需要简单的了解一下版本控制的历史.按照时间的流程如下:
- Source Code Control System(SCCS)
- Revision Control System(RCS)
- ConcurrentVersionsSystem(CVS)
- Apache subversion(SVN)
- BitKeeper SCM
- Git
更多读者比较熟悉的是CVS和SVN,这些都属于集中化的版本控制系统(Centralized Version Control System) CVCS,它能够有效的解决不同系统上的开发者协同工作.不同的人都是直接面向中心库进行操作.
Git是属于分布式版本控制系统(Distributed Version Control System)DVCS . DVCS的特点是所有的仓库都是完整的镜像,进一步解释,假如版本控制服务器发生了故障,那么我们可以用任何一个本地仓库进行恢复.
如上图,如果Server Computer发生了故障,我们可以从ComputerA 或者Computer B进行完整的恢复.它不再是提取最新版本的文件快照,而是原始仓库的完整镜像.而这仅仅是分布式版本控制诸多特点中的其中一个.对比SVN等集中式版本控制系统,假如中央服务器发生故障,在故障期间谁也没有办法提交或者更新
分布式版本控制系统除了Git之外,还有Mercurial,Darcs等.
以上内容和大家一起从版本控制系统的角度来了解Git,在接下来的文章中将带领你一起去玩一玩Git,带你快速的去创建一个Repository.