Git 是一个分布式版本控制系统。Git 是 linus 为了帮助管理 Linux 内核开发,使用 C 语言开发的一个软件版本控制软件。
版本控制是一种记录一个或若干个文件内容变化、以便将来查阅特定版本修订情况的系统。有了它就可以随时将某个文件回溯到之前的状态,甚至将整个项目回退到之前的某个节点。还可以比较文件变化的细节(只能记录文本文件的细节,对于像 word 等二进制文件,只能记录文件发生变化,而不知具体什么变化)。
Local Version Control Systems,简称 VCS。
许多人通过复制整个项目目录的方式保存不同的版本,有的还会通过改名或者加上时间以示区分。
这么做的好处就是简单。但是容易犯错,有时候会混淆所在的工作目录,一不小心会写错文件或者会意外覆盖文件。
为了解决这个问题,人们开发了许多版本控制系统,大多数采用数据库记录文件的历次更新差异(补丁集,补丁-文件修改前后的变化),通过应用所有的补丁,可以计算出各个版本的文件内容。代表软件是 rcs。
Centralized Version Control Systems,简称 CVCS。
为了解决上述问题,出现了集中化版本控制系统。如 CVS 、Subversion(简称 SVN) 等。他们都有一个集中管理的服务器,保存所有文件的修订版本,而协同工作的人都通多客户端连接到这台服务器上,去除最新文件或者提交更新。
相较于老式的 VCS,现在可以
随着时间的推移,人们又发现了问题:
Distributed Version Control Systems,简称 DVCS。
为了解决上述问题,出现了 分布式版本控制系统,如 Git、Mercurial、BitKeeper 等,客户端不只保存最新的文件快照,而是把代码仓库完整的镜像下来。如果任何一处协同工作的服务器发生故障,事后都可以用任何一个镜像恢复,因为一次克隆操作就是一次代码的完整拷贝。并且,这类系统可以指定和若干个不同的远端代码仓库进行交互。可以根据需要设定不同的工作流程。
原文:https://www.cnblogs.com/MyCode1990/p/12990670.html