git版本控制系统介绍

时间:2020-03-21 11:45:52  来源:igfitidea点击:

我们将在这篇文章中介绍以下内容。

  • 什么是VCS或者版本控制系统?
  • 什么是GIT?
  • GIT与其他版本控制系统有何不同?

让我们了解什么是版本控制系统:

版本控制系统是一个软件包,可让我们控制代码,文档,项目或者任何内容的版本。
换句话说,可以通过版本控制系统来管理文档,程序,代码中的更改。
版本控制系统的主要工作是记录文档随时间的变化,并允许我们在不同版本之间进行切换。

版本控制系统允许我们执行以下操作。

  • 将内容还原到以前的版本
  • 将某些项目完全还原到以前的状态
  • 分析不同版本的更改
  • 找出谁做了一些特定的更改

简而言之,可以说,如果我们在版本控制的环境中工作时搞砸了,则可以轻松地还原。

传统上,人们通常将整个项目存储在另一个目录(可能是带有timstamp的命名目录)中,以便在发生某些情况时可以还原。
但是这种方法很容易出错,因为有人可以坐在错误的目录中,并错误地将其写入错误的目录中。

一个使用简单数据库进行维护的旧版本控制系统,版本为rcs,MAC OSx中的人们仍在使用它。
此rcs采取了一种方法来保持文件之间的差异,从一次编辑到磁盘上的另一次编辑。

现在,如果开发人员希望与另一个系统上的其他开发人员通过协作一起工作,该怎么办?
为了解决此问题,他们提出了一个具有所有数据的中央服务器的想法,并且客户端用于从该中央服务器检出文件。
流行的版本控制系统(如VCS,Suversion等)遵循了这种用于版本控制的模型。

这种中央服务器模型既有优点,也有一些主要的缺点。

集中式服务器版本控制系统的优点:

  • 开发人员知道其他开发人员在做什么
  • 管理员拥有更多控制权,谁可以做什么
  • 简化管理

集中版本控制系统的缺点:

  • 中央服务器中的单个故障可能会使开发人员在一段时间内无法协作
  • 中央服务器中的磁盘故障将导致数据丢失(如果未进行适当的备份)

现在让我们在版本控制系统中采取另一种方法,即。
分布式版本控制系统。

在DVCS(分布式版本控制系统)中,客户端不仅签出最新更新,而且还镜像整个项目存储库。
因此,即使服务器出现问题,也可以将客户端的存储库复制回服务器。

分布式版本控制系统中的每个Checkout都是整个数据的完整备份。

我们还可以在同一项目中同时以各种方式与不同的人进行协作。

Git,Bazaar,Darcs使用分布式版本控制系统。

Git的历史

在2002年期间,Linux内核的开发开始使用称为Bitkeeper的专有分布式版本控制系统。
2005年,由于linux开发团队和bitkeeper团队之间的某些问题,内核开发人员Linux Torvalds最终开发了另一种称为GIT的分布式版本控制系统,用于内核开发。

关于Git的一些值得注意的优点是

  • 非常快
  • 可以处理非常大的项目
  • 分支系统

git和其他分布式版本控制系统之间的主要区别在于它处理数据的方式。
大多数版本控制系统都将所有更改存储到文件中。
但是git在处理数据时采取了不同的方法。
GIT将数据视为小型文件系统的快照。
每当对数据进行一些更改时,git都会在该时间点存储所有文件的状态,并添加对该状态的引用。

而且,如果文件在上次编辑后没有更改,则git不会再次存储该文件,而是提供指向先前状态的链接。

Git的运行速度是由于整个仓库都是本地的(如上所述,每个在项目上工作的机器都将拥有整个数据仓库)这一事实。
因此,例如,为了检查某个项目的历史记录,无需连接到远程服务器。

在Subversion和CVS之类的版本控制系统中,虽然我们可以编辑文件,但是除非与中央服务器保持连接,否则我们将不能提交更改。

GIT使用SHA-1哈希

校验和引用存储库中的每个文件,GIT使用sha-1算法进行校验和。
因此,数据完整性内置在GIT中。
由于使用校验和,git可以轻松检测任何数据损坏,更改等。

实际上,在GIT的数据库中,数据不是与文件名一起存储,而是与SHA-1哈希值一起存储。