Git是目前世界上最先进的分布式版本控制系统,它最初是由 Linux 操作系统内核的创造者 Linus Torvalds 在 2005 年创造,git是开源的。
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 多年以来,这已成为版本控制系统的标准做法。
坏处是如果出现服务器故障或者网络问题,那么在这一段时间内所有人都不能进行提交或者更新(这点与git就有很大的差别,git可以在本地进行提交再在有网络的时候push到服务器)
分布式版本控制系统并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。