Ted Nyman – 高性能 Git
发布: (2026年4月28日 GMT+8 08:32)
3 分钟阅读
原文: Hacker News
Source: Hacker News

概览
Git 看起来像是一个版本控制工具。它同时也是一个内容寻址数据库、文件系统缓存、图遍历器以及传输协议。
本书围绕这些层次以及每一层的性能开销展开。内容从对象、引用、索引和历史遍历开始,随后向外延伸至 packfile、维护、稀疏工作树、部分克隆、传输、仓库规模、诊断、配置和恢复。
本书面向需要在仓库、历史记录和团队规模增长时保持 Git 高速运行的工程师:构建与 CI 工程师、单体仓库拥有者、开发者体验团队,以及在常规解释失效时需要调试奇怪 Git 行为的人群。
第 0 部分 · 介绍
第 I 部分 · 基础
Git 为什么会变慢、Git 存储了什么,以及引用和索引如何在其中导航。
第 II 部分 · 历史与重写
Git 如何遍历历史,以及重写命令如何在不改变提交的前提下重塑历史。
第 III 部分 · 存储与本地规模
对象存储、索引成本、维护以及压缩本地状态的技术。
- Loose Objects, Packfiles, Delta Compression
- The Index as a Performance Structure
- Commit‑Graph, Bloom Filters, MIDX, Bitmaps
- Git GC and Maintenance
- Sparse‑Checkout and Sparse‑Index
第 IV 部分 · 大型仓库操作、传输与规模
克隆形态、传输策略、工作树并行、仓库大小以及引用规模。
- Partial Clone and Promisor Remotes
- Scalar, Prefetch, Large Repositories
- Worktrees
- Clone, Fetch, Push, Protocol v2
- Bundles and Bundle URIs
- Reducing Repository Size
- Large Ref Sets: Files, Packed‑Refs, Reftable, and
git refs
第 V 部分 · 诊断与恢复
如何对 Git 进行仪表化、定位慢速层、应用高杠杆设置,以及在仓库本身出现问题时进行恢复。