集中式版本控制系统 (CVCS) 与分布式版本控制系统 (DVCS) 的区别
版本控制系统是一种软件,允许您管理一段时间内对资源(代码库、文件)的更改。集中式和分布式是两种主要的版本控制系统。这两种系统之间的根本区别在于它们如何:
管理代码库
管理内容工作流程
集中式模型
集中式版本控制系统遵循服务器-客户端模型。服务器保存项目的单个中心副本,以及一段时间内对代码库所做更改的历史记录。使用集中式版本控制系统的工作基本流程如下:

当用户想要使用某个文件时,他们通过客户端机器连接到服务器并下载文件的本地副本。用户在其本地系统上可用的副本上进行操作,最后将对文件或代码库所做的更改发送到中央服务器。必须始终可以访问中央服务器才能执行源代码管理。一些常用的**集中式版本控制系统包括并发版本系统 (CVS)、Subversion (SVN) 和 Perforce**。
集中式版本控制系统的主要缺点之一是中央服务器是单点故障。这意味着如果中央服务器发生故障,则无法对代码库执行任何操作,因为它驻留在服务器上,因此无法跟踪对代码所做的更改。此外,在大型团队中工作时,中央服务器和代码库可能会成为瓶颈。这就是分布式版本控制系统发挥作用的地方。
分布式版本控制系统
与分层结构的集中式版本控制系统不同,分布式版本控制系统采用更平等的方法。就像在集中式版本控制系统中一样,您检出代码库的副本,进行更改,然后检入。两种类型之间的主要区别在于,集中式版本控制系统将更改历史记录保存在中央服务器上。每个人都请求最新版本的工作,并将最新的更改推送到中央服务器。
对于分布式版本控制系统,每个协作者都将在本地机器上拥有完整的代码库,包括完整的修订历史记录和提交信息。协作者可以在本地推送他的代码版本或新的更改集。这有助于避免由于中央版本控制服务器崩溃而导致的故障。一旦功能或一组更改集准备就绪,协作者就可以一次性将所有这些更改推送到中央服务器。换句话说,与集中式版本控制系统不同,无需在线即可更改修订版或向工作添加更改。此外,协作者可以选择与特定人员共享他的代码以获得反馈,然后再最终确定并将其代码提供给整个团队。
下图显示了在分布式版本控制系统中可以执行的操作。

在 Git 的术语中,中央服务器称为代码库。协作者从代码库下载的文件副本称为克隆。本地代码库是从服务器复制的代码库。开发人员在克隆副本上工作。当所有功能都制作完毕并经过适当测试后,开发人员就可以将最终代码库与远程代码库同步。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP