版本控制学习

smallcracker 2021-05-19 00:00:00
Categories: Tags:

用途

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 在本文所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。

几种版本控制系统

本地版本控制系统

最早的版本控制系统是人们将整个文件复制下来再进行修改,后来出现一种流行的版本控制系统叫RCS,工作原理是在硬盘上存储补丁集,通过应用所有的补丁,电脑可以计算出各个版本的文件内容。

集中化的版本控制

该版本控制方法致力于让不同系统上的开发者协同工作。这类控制系统,比如CVS,Subversion,Perforce等,都有一个单一的几种管理的服务器,服务器上保存有所有文件的修订版本。协同工作的人们通过客户端来连接这台服务器,取出最新的文件或者提交更新。

这种版本控制方法的缺点在于如果中央服务器出现故障,则人们将无法协同工作。一旦中心服务器磁盘发生损坏,整个项目就会丢失。(本地版本控制系统也存在如下问题)

分布式版本控制系统(DVCS)

典型的分布式版本控制系统,比如Git,Mercurial,Bazaar,Darcs等,客户端不是仅提取最新版本的文件快照,而是把代码仓库完整的镜像下来,包括历史记录。而且通过这种控制系统,我们可以在同一个项目中,分别和不同的工作小组进行合作。

Git

Git有如下特点:


下面是对Git的使用介绍

Git不是针对基于差异的版本控制,而是把数据看做是对小型文件系统的一系列文件快照。当我们提交更新时,他就会对当时的全部文件创建一个快照并保存这个快照的索引。为了提高效率,Git不会重新存储没有修改的文件,而是保留一个练级指向之前的存储文件,Git对待数据,更像是一个快照流。

Git 存储项目随时间改变的快照。

在Git中几乎所有的操作都只需要访问本地文件和资源,一般不需要来自网络上其他计算机的信息。

举个例子,要浏览项目的历史,Git不需要连接到服务器上去获取历史,而是只需在本地进行读取。

同时Git还能保证完整性,Git中所有的数据在存储前都会计算校验和,然后以校验和引用。这意味着不能在Git不知情时更改任何文件内容或目录内容。

Git一般只会向数据库中添加数据,所以几乎不会执行任何删除文件的命令。

每一个文件都可能有三种状态:已修改,已暂存,已提交,分别对应三个目录,工作目录,暂存目录,.git目录。

工作区是某个版本独立提取出来的内容,这些从Git仓库中提取出来的文件,放在磁盘上供我们修改。

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中。

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

使用