为什么需要版本控制:U盘问题

发布: (2026年1月17日 GMT+8 21:11)
8 分钟阅读
原文: Dev.to

Source: Dev.to

那时候,错误还能勉强控制,但保存工作却像在拆炸弹。
这是正确的文件吗?已经有人做过编辑了吗?这一步会抹掉别人几小时的工作吗?团队没有撤销按钮——没有倒带,没有安全网,只有希望。

还有那些文件夹?它们充斥着绝望的命名:

final
final_final
final_final_please_work
dont_touch_this_one

这并非夸张或怀旧;这正是开发者的日常,也是版本控制诞生的根本原因。

问题是具体的

在 Git 等工具出现之前,代码并没有安全地存放在云端。它会通过 USB 盘、电子邮件、共享文件夹以及 FTP 服务器在不同人之间传递。代码的流转方式类似实体文档,而不是作为可追溯的历史记录。

从本质上说,版本控制解决了一个根本性的问题:多个人如何在同一段代码上协作而不相互覆盖?

开发者把代码当作 Word 文档来对待——打开、编辑、保存、覆盖。每一次覆盖都相当于抹去了一部分历史。

版本控制之前的协作

想象一个小团队共享一只装有整个项目的 USB 驱动器。

  1. 开发者 A 更新了一些代码,保存后把驱动器交给下一个人。
  2. 开发者 B 编辑了其他内容并保存,覆盖了 A 的工作。
  3. 开发者 C 仍在使用较旧的副本并在其上进行更改。

当驱动器再次传回时,没人知道:

  • 哪个版本是最新的?
  • 哪个版本实际上可以正常工作?
  • 哪个更改导致了 bug?
  • 为什么实习生提交了未完成的代码?

这些并不是草率的习惯;那是当时团队唯一的工作方式。核心问题仍未得到解答:

  • 是谁做了此更改?
  • 我们应该信任哪个文件?
  • 这个 bug 首次出现是什么时候?
  • 为什么它在一台电脑上运行正常,却在其他所有电脑上都失败?
  • 有人在生产环境直接测试过吗?

随着项目规模扩大,U 盘被电子邮件附件、FTP 上传和共享公司文件夹取代,但问题仍然相同:代码被共享,但更改没有被追踪。 开发者开始复制文件和文件夹,导致目录名称不断膨胀,例如:

project_final
project_final_v2
project_latest
project_latest_final
project_latest_final_please_work

每个名称都是一次小小的希望。一次不小心的保存可能会抹去数天的进度,这并非因为坏习惯,而是工作流根本不支持安全协作。

The real turning point: Linux and BitKeeper

Linux 是一个规模庞大、全球使用的项目,每天都有成千上万的贡献者修改代码。自 2002 年起,Linux 项目依赖一种名为 BitKeeper 的专有工具。2005 年其免费使用被终止后,社区突然失去了赖以依赖的系统,开发进度随之放缓。

当时没有足够强大的开源替代方案可以取代 BitKeeper,Linus Torvalds 便像往常一样在没有合适选项时 自行创建 了一个工具。其结果就是 Git

Git的诞生

Git 并不是为了好看或在第一天就易于使用而构建的。它是为大规模处理混乱而构建的。它的目标简单而严格:

  • 永不丢失工作 – 每一次更改都必须被保存。
  • 支持非常大的项目
  • 极其快速
  • 适用于分布式团队,且不依赖单一的中心服务器。

Git 并不是为了让开发者感到舒适而设计的;它是为了让协作可靠而设计的。

Git 如何改变开发

开发者曾经视为正常的问题突然有了解决方案:

  • 被删除或覆盖的代码可以恢复。
  • 冲突的更改可以干净地解决。
  • 团队协作变得有结构且可预测。
  • 每一次更改都有永久记录。

版本控制不再是临时的补救措施,而成为现代软件开发的核心。

现在,开发者可以:

  • 无忧尝试新想法。
  • 在独立的分支上开发功能。
  • 在几秒钟内撤销错误。
  • 自信地协作。

错误不再令人恐惧;它们变成了学习的机会。

影响

  • 开源项目快速增长。
  • 个人项目的风险感降低。
  • 团队对变革更加开放。
  • 开发变得不那么有压力。

Git 并没有消除错误——它消除了对错误的恐惧。

澄清 Git 与 GitHub 的区别

  • Git – 在你的电脑上安装的软件工具,用于跟踪代码更改。它可以离线工作,不需要互联网连接。
  • GitHub(以及类似服务)– 一个在线存储 Git 仓库的网站,提供诸如议题(issues)、拉取请求(pull requests)和代码审查等协作功能,帮助人们协同工作。

Git 先出现;GitHub 让它走向所有人。Git 的出现并不是因为开发者在追逐下一个炫目的工具,而是因为旧的工作流程在压力下崩溃了。

展望未来

随着 Git 的成熟,围绕它形成了完整的生态系统——GitHub、GitLab、Bitbucket、SourceForge、AWS CodeCommit、Perforce——每个系统都以自己的方式解决协作问题。尤其是 GitHub,已经演变成一个共享舞台,开发者可以公开协作,思想在开放中成长。

在下一篇文章中,我们将从 Git 为什么存在 转向 Git 如何工作,一步步探讨 Git 基础和必备命令。

Back to Blog

相关文章

阅读更多 »

什么是 git?

为什么你需要 Git 对于许多开发者来说,U 盘只是一个存放和检索旧项目或文件的地方。但当你拥有太多文件夹、冗余文件……

Git 初学者指南:理解版本控制

介绍 当你第一次听说 Git 时,它可能听起来令人生畏,但一旦你了解 Git 存在的原因以及基本命令的工作原理,一切就会开始……

Git 入门

markdown 介绍 如果你正在学习编程或处理代码,你会到处听到 Git 这个词。Git 起初可能让人感到困惑,但一旦你…