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

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

在 Git 术语中,中央服务器称为存储库。协作者从代码库下载的文件副本称为克隆。本地代码库是从服务器复制的。开发人员在克隆代码库上进行开发。当所有功能都开发完成并测试完毕后,开发人员就可以将最终代码库与远程代码库同步。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

