Git 看起來像是一個版本控制工具。它同時也是一個內容定址的資料庫、一個檔案系統快取、一個圖形遍歷器,以及一個傳輸協定。

這本書將探討這些不同的層面及其各自的效能成本。它從物件、引用 (refs)、索引 (index) 和歷史遍歷開始,接著深入探討打包檔案 (packfiles)、維護 (maintenance)、稀疏工作樹 (sparse working trees)、部分複製 (partial clone)、傳輸 (transport)、儲存庫規模 (repository scale)、診斷 (diagnosis)、配置 (configuration) 和復原 (recovery)。

本書的讀者對象是那些需要 Git 在儲存庫、歷史記錄和團隊規模不斷擴大的情況下,依然保持快速的工程師:建置與 CI 工程師、大型單一儲存庫 (monorepo) 的擁有者、開發者生產力 (devprod) 團隊,以及任何被賦予任務去理解 Git 超越一般四個指令的人。

Git 變慢的原因、Git 儲存了什麼,以及引用和索引如何引導其中。

Git 如何遍歷歷史,以及重寫命令如何在不變動提交 (commits) 的情況下重塑它。

物件儲存、索引成本、維護,以及縮減本地狀態的技術。

複製的形狀、傳輸策略、使用工作樹 (worktrees) 的平行工作、引用協商 (ref negotiation)、儲存庫大小,以及引用的規模。

大量推送流量對共享儲存庫造成的影響、如何為 Git 進行儀表化 (instrument),以及在儲存庫實際出現問題時如何復原。