重温痛苦:没有 Git 的世界

2025-06-07

重温痛苦:没有 Git 的世界

介绍

计算机在短时间内取得了长足的发展,并且仍在快速发展。随着科技的进步,世界如今触手可及。随着硬件领域的进步,软件开发也取得了长足的进步。说到软件开发,怎么能不提Git呢?

Git 是目前最常用的版本控制系统(VCS)。Git 速度超快,仿佛速度之神赋予了超凡的力量。如果您是软件开发人员,Git 就是您的日常工作。Git 于2005 年开发,当时争议很大,而软件开发至今已有 70 多年的历史。那么,在 Git 出现之前,开发世界是什么样的呢?

让我们深入探讨一下。

1)本地维护备份

文件夹

在软件开发的早期阶段,没有版本控制系统。每日或每周备份是常态。

对于协作项目,过去通常有一个主副本由一个人控制。每个人都与这个人一起工作。
在那个年代,“主副本”Commit指的是备份当前版本并应用新的更改。

这带来了两个主要问题

1) 很难知道你随着时间的推移做了哪些更改。除了手动检查文件差异之外,别无选择。

2)随着时间的推移,文件会变得非常大,以至于制作多个文件最终可能会占用整个磁盘存储空间。

2)本地VCS(LVCS)

没有 VCS 的所有任务都很繁琐。这需要发布团队和项目负责人付出更多努力。为了解决这个问题,程序员开发了Local VCS。它们也被称为“第一代 VCS”

本地 VCS

顾名思义,它有一个本地数据库来存储对文件所做的更改。最流行的本地版本控制系统之一是“ RCS(版本控制系统) ”,它存储了补丁集,并可以通过合并这些补丁集来重现文件在任何时间点的状态。

另一个流行的第一代本地 VCS 是“ SCCS ”或源代码控制系统,它确实是 UNIX 开发人员于 1972 年开发的第一个 VCS。

3)集中式VCS(CVCS)

本地 VCS 很好,或者至少比维护备份要好,但即使这样也存在问题。所有内容都已存储locally。如果system crashed没有备份,您将丢失所有内容。此外,还有no way to collaborate其他开发人员遇到的问题。

为了解决这个问题,集中式 VCS 应运而生。它们是“第二代 VCS”

心血管控制系统

在这里,我们有一个中央服务器,其中包含项目的所有版本和提交。每个人都可以推送和拉取更改。由于服务器是集中式的,几乎每个人都知道其他人在做什么。

除了这些优点之外,CVCS 也存在缺点:

1)由于一切都是中心化的,如果server failure服务器硬盘损坏,您将丢失所有内容(如果没有备份)。您可能会从提交了最后更改的开发人员那里获得项目的最新版本,但所有之前的更改都已丢失。

2) 此外,由于服务器集中式设计,您需要先登录an Internet connection才能提交更改。因此,如果您在没有网络的地方工作,可能会遇到一些麻烦。

第二代 VCS 的一些示例是“ Apache Subversion(SVN) ”,“ CVS ”和“ Perforce ”。

4)分布式版本控制系统(DVCS)

早期的一切都各有优缺点。但人们需要更好的解决方案,于是分布式版本控制系统 (VCS) 应运而生。它也被称为“第三代 VCS”

分布式视频控制系统

locally on their machine在这里,每个人都在和 上拥有项目的完整备份centralized server。由于每个人都拥有完整工作历史记录的本地副本,因此无需在线即可提交更改。他们可以先将更改提交到本地存储库,然后只要有互联网可用,就可以将这些更改推送到主存储库(远程存储库)。

第三代 VCS 的一些示例是“Git”“Mercurial”“Bitkeeper”“bzr”

GIT简史

Linux 的开发始于1991年。直到2002,变更都以补丁和存档文件的形式传递。考虑到项目规模,这对于开发人员来说非常困难。

因此,他们最终在2002开始使用当时免费的“Bitkeeper VCS” 。一切都很顺利,Linux 的开发也一直很顺利,直到2005 年, Bitkeeper 的版权持有者Larry McVoyfree-of-charge声称Andrew Tridgell通过逆向工程Bitkeeper 协议创建了Sourcepuller ,从而撤销了Bitkeeper 的版权。

当时Linus Torvalds,Linux 的创建者 开始考虑开发自己的分布式版本控制系统 (VCS),并使其具备所需的功能。Git 的开发始于2005 年 4 月 3 日,并于2005 年 4 月 29 日实现了其性能目标

这导致了软件开发领域使用最广泛的 VCS 的开发。

致谢

图片:Pro Git

参考

Pro Git 电子书: https://git-scm.com/book/en/v2
维基百科: https://en.wikipedia.org/wiki/Git

文章来源:https://dev.to/kcdchennai/revisiting-the-pain-the-world-without-git-3jod
PREV
Você deve trabalhar pra você Por Zarathon Viana Você deve trabalhar pra você - Zarathon Viana
NEXT
通过在酒吧点饮料来解释模型-视图-控制器(MVC)