Sui

Git入门-版本控制介绍

字数统计: 1.2k阅读时长: 4 min
2021/01/13 Share

Git入门-版本控制介绍

再介绍Git之前,先介绍一下版本控制,什么是版本控制,其实在我们平常的工作中,就已经用到了版本控制,只不过你的版本控制是这样的

这样做的坏处就是我们每次都要复制文件,占用了太多的磁盘空间,如果文件像上面这样的word文档还好点,如果是几百个G的代码,这样复制几回,磁盘岂不是没有空间了。另外,如果对文件或者文件夹的命名稍有那么一点点的不规范,随着文件数量的增加,那么你就分不清各个版本谁在谁之前了。

版本控制

版本控制的引出最先是从管理代码的版本开始的,由于代码的版本管理特别不方便,如果回溯到之前的代码进行查看,就需要找到当时的文件,如果你的文件编号特别随意(例如上面这样),那基本上在众多版本中是找不到的。

基于这个原因,就发明出来了版本管理这个概念,我们在每次修改文件时对所做的修改进行说明,并且进行提交,这样这个版本管理系统就会记录好我们每次的修改,需要查看之前的版本时,就可以回退到那个时间点,或者我们不小心删除了某个文件,也可以进行恢复。而不是需要手动去复制文件,这极大的增加了工作效率。

目前已知的版本管理系统可以分为三类

本地版本管理系统

本地管理系统采用的技术是利用数据库存储每次修改的文件之间的差异,并不是每个版本都存储全部文件。当我们想要查看某个版本的时候,会根据当前版本存储的差异与原始文件做运算,从而得到当前版本

由于它是存在个人的PC上的,所以他的缺点也特别明显,只适合单人工作,涉及到协同开发这种操作在本地版本管理系统上是做不到的。

本地版本管理也有一个代表的工具,叫RCS(Revision Control System),这种工具挺古老的,基本上已经不在使用了。

集中化的版本管理系统(Centralized Version Control Systems,简称 CVCS)

集中化的版本管理系统采用中央服务器的概念,所有的版本都存储在服务器上,当我们想要查看某个版本的时候,就可以从中央服务器进行拉取,进行修改后再提交。典型的集中式版本管理工具有SVN(Subversion )、Perforce

引入了中央服务器的概念,这样就有利于团队协作了,不同的开发人员可以从不同的分支或者相同的分支拉取代码,进行编辑,最后再进行提交。但是所有的版本都存储在中央服务器,弊端也就暴露出来了,如果中央服务器单点故障,就会造成所有的版本数据连同文件丢失,只剩下了当时各个开发人员电脑中的文件数据,而这个数据只是当是中央服务器中的某一个单独的版本,并不能进行恢复。

那么这样,就需要对中央服务器做集群操作,避免单点故障。

分布式版本管理系统(Distributed Version Control System,简称 DVCS)

分布式版本管理系统是目前最流行的版本管理工具,他采用和集中式版本管理系统相同的方案,但是不同的是每一台电脑从远端仓库进行拉取代码后,每一台电脑又是一个版本库,他里面包含了和中央服务器相同的数据,包括各个版本的信息、数据、分支等等。

典型的分布式管理系统的工具有Git(重中之重)、Mercurial、Bazaar、Darcs

Git和集中式版本管理的区别是Git在本地保留了远端仓库的所有信息,就相当于对远端仓库进行了克隆,而集中式版本管理只是对某一个版本进行了克隆,不包含版本库的所有信息。

如果Git出现了单点故障,就完全可以利用本地的代码库对其进行恢复,这是集中式版本管理做不到的。

参考链接

CATALOG
  1. 1. Git入门-版本控制介绍
    1. 1.1. 版本控制
      1. 1.1.1. 本地版本管理系统
      2. 1.1.2. 集中化的版本管理系统(Centralized Version Control Systems,简称 CVCS)
      3. 1.1.3. 分布式版本管理系统(Distributed Version Control System,简称 DVCS)
    2. 1.2. 参考链接