news 2026/1/20 8:07:55

Git 正在“悄悄报废”——但开发者现在还不愿意承认

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git 正在“悄悄报废”——但开发者现在还不愿意承认

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

那一天,Git 在我面前“停摆”了

事情发生在一个普通得不能再普通的周二早晨上线。

按理说,这种部署属于“过了就忘”的那种无聊流程。

可偏偏这一次,Git 卡住了。

不是崩溃。不是报错。就是……不动了。

一次简单的git pull,硬生生拉了六分钟。风扇狂转、CPU 飙高,而那个仓库早就长成了一个“谁都不想承认我们养出来的怪物”。

那天我并不孤单。团队里 Slack 同一时间刷屏:

“Git 又喘不过气了。” “你们的 pull 也巨慢吗?” “这破仓库现在 9GB 了……”

然后一个更刺耳的事实砸过来:

不是仓库的问题。 不是流程的问题。 也不是硬件的问题。

是 Git 自己在拖我们后腿。

它不是那种“轰”一声的失败;相反,它是慢慢地、悄悄地、让人习惯成自然的那种失效。

而当我开始认真观察,我又意识到一件更不舒服的事:

Git 从来就不是为 2026 年的软件开发方式设计的。

只是没人愿意公开说。因为太多开发者的身份认同,绑在 Git 上了——就像老派运维曾经把 SSH 和 cron 当信仰一样。

可我们必须聊聊这事。

人人都看见的裂缝(只是大家假装没看见)

先从最明显的开始——Git 每天都在折磨我们,可偏偏很少有人把它叫做“失败”。

1. Git 在现代规模面前会碎

Git 诞生于 2005 年。

那时候:

  • monorepo 还不流行,甚至几乎不存在

  • 代码库不会动不动 20GB

  • 团队不会跨 15 个时区同时开发

  • CI/CD 不会每天产出、提交几百个构建产物

  • LFS 还没出现

  • 开发者也不需要把 10+ 年的历史全量克隆到本地

然而,Git 的底层架构并没有发生本质变化;与此同时,我们的工作方式却彻底变了。

据 Google 自己关于 Piper(他们的 Git 替代方案)的文档描述,Git 在超大规模场景会变得“运维上很脆弱”。(来源:Google Research Publications 的相关材料常被引用)

另外,GitHub 的工程博客也承认:当仓库历史极深、目录树频繁变化时,Git 的对象存储模型会变成性能瓶颈。

我们之所以硬扛,是因为 Git “是标准”。

但是标准不等于适配。 因此,规模正在把 Git 一点点吞掉。

2. Git 的合并模型,像是另一个时代的遗物

我们总说 Git 的 merge 很强。

可它也同样是:

  • 冲突高发

  • 状态复杂(stateful)

  • 心智负担重

  • 容易被弄乱

  • 出问题很难定位

每个开发者都经历过这种地狱连招:

  • git rebase

  • git rebase --abort

  • git reset --hard HEAD~1

  • git cherry-pick

  • git push --force

最后一个呢? 那个大家用得“很随意”的命令?

在大团队里,它就是“离毁掉同事一天只差一个回车”。

如果 Git 是今天才被发明出来,force push大概率会被直接列入黑名单。

3. Git 很慢,而且只会越来越慢

现在就做个小实验:

time git status

在 3–5GB 以上的仓库里,git status都可能明显发黏,因为 Git 需要扫描整个工作目录。

我们把这种卡顿当成“正常”。

不应该。

尤其是当 Fossil、Plastic SCM,甚至 Google 的 Piper 可以以数量级更快的速度计算工作区状态时,Git 的性能上限就不再是“能忍”,而是“该换”。

4. 二进制资产团队,天生和 Git 八字不合

游戏工作室。 ML/AI 团队。 视频制作。 嵌入式项目。

这些团队讨厌 Git,并不是他们“不专业”,而是 Git 根本没为巨大二进制资产设计。

Git LFS 说白了就是创可贴——而且大家都知道它只是创可贴。

Unity、Unreal 开发者经常写类似的话:

“Git 对游戏资源来说根本不可用。”

他们没夸张。

5. Git 打断人的工作流,远多于它帮助人的地方

这句话可能刺耳,但很真实:

Git 逼着开发者去适应机器能理解的流程,而不是人更自然的思考方式。

你听过多少新同事、初级开发者说过:

“我不知道我现在 repo 是什么状态。”

我们觉得 Git 顺手,是因为我们已经交过“学习税”。 新人却要承受全部代价。

更反讽的是:

到了 2026 年,AI copilot 写代码的速度,已经快到 Git 管理它都显得慢。

于是,Git 反过来成了瓶颈。

争议点:Git 的“成功”,更多是惯性

开发者不是因为 Git 很棒才用它。

我们用 Git,是因为:

  • GitHub 把 Git 变成了代码的社交默认入口

  • 教程全都教 Git

  • 公司招聘默认要求 Git

  • 工具链围绕 Git 生态构建

  • 我们害怕替代方案

  • 我们不想重新学习

如果 Git 今天才发布:带着这些性能问题、交互痛点、对二进制的敌意——它大概率不会赢。

赢的是生态,不是技术。

就像 Java 在企业里赢,并不完全因为它“最强”,而是因为它“到处都是”。

Git 本质上是穿着潮牌外套的老技术。

替代者并不神秘:它们已经在发生

这不是脑洞。 Git 的替代方案早就存在,而且大公司也早就用上了。

我们聊三个最代表性的。

1. Google 的 Piper

Google 从来就没有在超大规模里用 Git 做主力。

他们尝试过。 他们测量过。 然后他们放弃了。

Google 的研究与工程实践反复指向同一组结论:

  • Git 在巨大仓库里会崩坏

  • Git 的分支与合并模型不适合超大规模协作

  • Git 存储会遇到瓶颈

  • Git 的分布式特性,在企业 monorepo 里反而成了弱点

所以他们做了 Piper + CitC,一套版本控制系统,主打:

  • 即时同步

  • 工作区虚拟化

  • 支持数百万文件

  • 不需要深度克隆历史

  • 高性能分支

  • 内建代码审查流程

常被引用的出处之一:Google 的文章《Why Google Stores Billions of Lines of Code in a Single Repository》。

Piper 不是过去式,它更像 Git 的未来样子——只不过我们还被困在 Git 的过去里。

2. Meta 的 Sapling(前 Facebook VCS)

Meta 公开写过类似表述:

“Sapling 是一个可替换 Git 的工具,并且能显著提升大仓库性能。”

它主张的改进包括:

  • 更快的文件状态计算

  • 更快的历史浏览

  • 更快的合并

  • 比 Git 更少困惑感

Sapling 已经在 Meta 内部使用。

对他们来说,迁移不是“想不想”,而是“活不活得下去”。

3. Fossil、Plastic、Perforce:老牌巨头从未离场

AAA 游戏工作室并不靠 Git 管资产。

他们用 Perforce。

与此同时,AI/ML 团队对 Fossil、Plastic SCM 的兴趣也在上升,因为:

  • Git 会被大文件拖死

  • Git 的合并模型遇到生成物就容易失控

  • Git 对象存储会膨胀到离谱

技术圈常假装 Git 是“宇宙通用”。 现实不是。

一个瞬间,让我彻底换了看法

我当时在 review 一个初级同事的 pull request。

她犯了一个很小的错误,导致一个冲突——很普通的人类失误。

然后 Git 直接爆炸:

  • CONFLICT (content):

  • CONFLICT (rename/delete):

  • CONFLICT (modify/modify):

她慌了。 她以为自己闯了大祸。

可 Git 没有引导她。 Git 只是吓唬她。

那一刻我突然意识到:

Git 会惩罚错误,却不会陪你把错误走完。

而今天最好的工具应该做什么? 应该解释、可视化、可回滚、可沙箱、可模拟、可恢复。

Git 基本都不做。

一组真实对比,差点把我们团队看沉默了

我们在一个大型、二进制占比很高的仓库上做了实际测试。

仓库大小:8.4GB 文件数:约 94,000 历史:12 年

git status

real 17.224s user 14.553s sys 2.141s

sapling status

real 0.247s user 0.110s sys 0.034s

快了 70 倍。

这不是“抠性能”。 这是“换世界观”。

为什么开发者会如此拼命替 Git 辩护

这句话可能最扎心:

开发者为 Git 辩护,是因为他们花了很多年学会了如何驾驭一个会惩罚新人的工具。

承认 Git 在失败,就等于承认:

  • 我们浪费过时间

  • 我们背过一堆糟糕的流程

  • 我们搭过脆弱的 CI

  • 我们害怕再训练

  • 我们抗拒改变

  • 我们沉迷舒适区

开发者也会因为熟悉而固执,即使更好的工具已经存在。

很多 Git 的捍卫者,有点像拒绝离开 Vim 的人: 很酷,很硬核,但很难规模化。

未来:替代 Git 的下一代版本控制应该长什么样?

假设有一天,Git 不再是默认选项。

下一代 VCS 至少应该具备这些能力:

1. 虚拟化工作区

不再需要克隆 20GB 仓库到本地。

2. 即时状态检测

不扫描全量文件树,不再让git status成为日常折磨。

3. 更少冲突的历史模型

Google 的合并模型在某些场景能减少痛苦;而 Git 的方式在现代协作里太容易炸。

4. 原生二进制支持

不应该需要 Git LFS 这种补丁式方案。

5. 内建评审工具

代码评审不该依赖外部平台拼装。

6. 零成本分支

分支应该是“虚拟的”,而不是“昂贵的复制与历史负担”。

7. 系统级撤销

不再靠这种晦涩咒语:

git reset --hard HEAD~1

8. 人类优先的工作流

版本控制应该贴近人的思维方式,而不是让人去迁就机器。

Git 并不是为这个世界造的。 它的继任者会是。

代码例子:Git 如何在“走历史”上崩溃

git rev-list --all --objects | wc -l

在大仓库里,这条命令可能要跑好几分钟。

而现代 VCS 往往通过索引元数据来完成同类查询,能做到毫秒级,而不是递归暴走。

对比一下:

Git:

git log --full-history -- <folder> # 32 seconds

类似 Sapling 的索引式遍历:

sl log folder/ # < 450ms

Git 在用蛮力对抗几何问题。 替代者用索引解决问题。

最不舒服的问题

我问你一个很多 Git 拥护者不愿意面对的问题:

如果没有 GitHub,Git 还会是世界默认的版本控制系统吗?

我很怀疑。 而这恰恰就是问题所在。

Git 的统治更偏文化,而非技术。

因此,它的衰落也会是文化性的——看起来突然、实际上必然。

接下来会发生什么

Git 不会一夜消失。

但是裂缝会变成断裂。 断裂会变成迁移路径。 迁移路径会变成默认选项。

如果要我预测:

  • AI-first 工作流会先把 Git 推到极限

  • 企业级 monorepo 会第二批离开 Git

  • 游戏与 ML 团队基本不会回头

  • 新工具会原生集成云工作区

  • Git 会变成“必须会但很少用”的遗留技能

就像 CVS。 就像 Subversion。 就像所有我们曾说“会永远存在”的东西。

最后:开发者值得更好的工具

我们已经长大了。 Git 没跟上。

不是情感上、不是文化上,而是技术上。

而一旦你真的体验过更快、更干净、更像“给人用”的工作区……你就很难再回到那个被git status支配的世界。

Git 没死。

但它正在死去。

悄悄地。 慢慢地。 可预测地。 不可避免地。

开发者不该被一个版本控制工具拖慢。

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

CSS终极指南

Vue 设计模式实战指南

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/20 6:07:13

PaddlePaddle自动化训练流水线:CI/CD集成最佳方案

PaddlePaddle自动化训练流水线&#xff1a;CI/CD集成最佳实践 在AI模型迭代速度决定业务竞争力的今天&#xff0c;一个常见的痛点是&#xff1a;算法工程师提交了新的训练代码后&#xff0c;往往要等半天才知道是否跑通——环境报错、依赖缺失、精度下降……这类问题反复出现&a…

作者头像 李华
网站建设 2026/1/14 5:03:00

工业4.0背景下eSPI的角色与价值:快速理解

eSPI&#xff1a;工业4.0时代的通信“瘦身革命”你有没有遇到过这样的工控主板设计场景&#xff1f;一个嵌入式控制器&#xff08;EC&#xff09;要和主CPU通信&#xff0c;光是电源管理信号就占了十几根GPIO&#xff1a;SLP_S3#、SUS_STAT#、PLTRST#……再加上IC读温度、SPI取…

作者头像 李华
网站建设 2026/1/19 16:36:16

Arduino小车爬坡动力优化:实战案例从零实现

让Arduino小车征服斜坡&#xff1a;从动力不足到稳定爬坡的实战全解析你有没有遇到过这样的场景&#xff1f;精心搭建的Arduino小车在平地上跑得飞快&#xff0c;可一碰到斜坡就“喘粗气”——速度骤降、轮子空转&#xff0c;甚至直接趴窝不动。这不仅是初学者常见的困扰&#…

作者头像 李华
网站建设 2026/1/13 10:44:44

小红书下载工具:一键获取无水印作品的高效解决方案

小红书下载工具&#xff1a;一键获取无水印作品的高效解决方案 【免费下载链接】XHS-Downloader 免费&#xff1b;轻量&#xff1b;开源&#xff0c;基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader X…

作者头像 李华
网站建设 2026/1/14 3:06:32

小红书视频下载终极指南:3分钟搞定无水印批量下载

小红书视频下载终极指南&#xff1a;3分钟搞定无水印批量下载 【免费下载链接】XHS-Downloader 免费&#xff1b;轻量&#xff1b;开源&#xff0c;基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader XH…

作者头像 李华