在学习Git之前,我们需要先弄清楚一个问题:“Git是什么?”,对于没使用过Git的同学来说,可能会一头雾水。
那么Git到底是什么呢,Git是一个免费的开源分布式版本控制系统,可以快速、高速地处理从小型到大型项目的所有内容。
我们看到这句话的时候,能够理解免费的开源的,那什么是”版本控制系统“呢,我们来看一下。
什么是版本控制系统?
- 版本控制(Version Control System,简称VSC)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。任何类型的文件都可以进行版本控制。
- 例如设计图的制作、项目的开发等,在制作和开发是的过程中可能需要保存所有的修订版本,此时采用版本控制系统是一个十分明智的选择。当你某天发现有一个文件被该乱了,就可以将这个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。除此之外,你还可以比较文件的细节,查出最后是谁修改了哪个地方,从而找出导致问题的原因,又是谁在何时报告了某个功能缺陷等。
- 使用版本控制系统意味着,就算你心血来潮将整个项目改的面目全非,照样可以轻松恢复到原先的样子,且操作特别方便快捷。
几种版本控制系统简单介绍
我们知道Git是分布式的版本控制系统,那我们来了解一下本地版本控制、集中化的版本控制系统、分布式版本控制系统之间的不同。
本地版本控制
为了解决经常混淆所在的工作目录,弄错文件丢了数据没法撤销恢复的问题,人们很久以前就开发了许多种本地版本控制系统(RCS),大多都是采用某种简单的数据库来记录文件的历次更新差异。
集中化的版本控制系统
为了让不同系统上的开发者协同工作,而开发了集中化的版本控制系统(CVCS)。这类系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出(其他人提交的)最新的文件或者提交更新到服务器上。
但这样做只要中央服务器出现故障,其他所有人都没法提交更新,无法协同工作。或者中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。
分布式版本控制系统
为了解决集中化的版本控制系统可能会遇到的问题,分布式版本控制系统面世了。在这类系统中,像 Git,Mercurial等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这样任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
并且许多这类系统都可以指定和若干不同的远端代码仓库进行交互,这样你就可以在同一个项目中,分别和不同工作小组的人相互协作。可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。
网友评论