什么是版本控制系统(VCS)?

来源:互联网 发布:mysql批量替换字符串 编辑:程序博客网 时间:2024/05/22 13:13

什么是版本控制系统(VCS)?

 

        因为最近准备开始使用Git管理自己的项目,所以把在学习Git的过程中看到的帮助文档、网友的一些经验心得等内容整理下来,逐步形成自己的使用笔记,以便日后查阅。

 

        版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

 

        为了让不同系统上的开发者能够协同工作,集中化的版本控制系统应运而生(CVCS)。这类系统都有一个单一的集中管理的服务器,保存所有文件的修订版本。而协同工作的人们都通过客户端连接到这台服务器,获取最新的文件或者提交更新。集中化的版本控制系统,最显而易见的缺点是中央服务器的单点故障问题。如果宕机,那么就会出现谁都无法提交更新的情况,那么也就无法协同工作;如果磁盘发生故障,而备份又不够即时,那么就有丢失数据的风险,最坏的情况是丢失整个项目的历史更改记录。因此,分布式版本控制系统问世了(DVCS)。

 

        在分布式版本控制系统中,客户端不仅仅是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。所以每一次提取的操作,都是对代码仓库的完整备份,因此也就不必担心协同工作用的服务器发生故障。

 

        Git和其他版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异。在Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。这是因为Git在本地磁盘上就保留着所有当前项目的历史更新,所以处理起来速度飞快,这是使用空间换时间的处理方式。使用Git,即使在没有网络或VPN的情况下,你同样可以非常愉快的频繁提交更新,等到有了网络的时候再提交到远程的仓库。

        

         Git管理中文件的三种状态

         对于任何一个文件,在Git内部都只有三种状态:已修改,已暂存和已提交。

         已修改 表示修改了某个文件,但还没有提交保存;

         已暂存 表示把已修改的文件放在下次提交时要保存的清单中了;

         已提交 表示该文件已经被安全的保存在本地数据库中了。

         Git在管理项目时,文件流转的三个工作区域是:本地仓库(即工作目录,也就是项目的源文件)->暂存区域->Git的工作目录。因此,基本的Git工作流程如下:  在本地的工作目录修改某些文件;然后对修改后的文件进行快照,保存到暂存区域;最后提交更新,将保存在暂存区域中的文件快照永久转存到Git的工作目录中。

                                                           

                                                              如图所示,基本的Git工作流程:文件在工作目录、暂存区域、Git目录之间的流转。

0 0