Ted Nyman – 고성능 Git
Source: Hacker News

개요
Git은 버전‑관리 도구처럼 보이지만, 실제로는 콘텐츠‑주소 지정 데이터베이스이자 파일시스템 캐시, 그래프 탐색기, 전송 프로토콜이기도 합니다.
이 책은 이러한 계층들과 각각의 성능 비용에 대해 다룹니다. 객체, 레퍼런스, 인덱스, 히스토리 순회부터 시작해 팩파일, 유지보수, 희소 작업 트리, 부분 복제, 전송, 저장소 규모, 진단, 설정, 복구까지 점차 바깥쪽으로 확장합니다.
저장소, 히스토리, 팀 규모가 커짐에 따라 Git이 빠르게 동작하도록 해야 하는 엔지니어들을 위해 쓰였습니다: 빌드·CI 엔지니어, 모노레포 소유자, 개발자 경험 팀, 그리고 쉬운 설명이 통하지 않을 때 이상한 Git 동작을 디버깅하게 되는 사람들.
Section 0 · Introduction
Section I · Foundations
Git이 느려지는 이유, Git이 저장하는 내용, 레퍼런스와 인덱스가 이를 어떻게 안내하는지.
Section II · History and Rewrite
Git이 히스토리를 탐색하는 방법과 재작성 명령이 커밋을 변형하지 않고 히스토리를 어떻게 바꾸는지.
Section III · Storage and Local Scale
객체 저장, 인덱스 비용, 유지보수, 그리고 로컬 상태를 축소하는 기술들.
- 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
Section IV · Large‑Repo Operations, Transport, and Scale
클론 형태, 전송 정책, 워크트리를 이용한 병렬 작업, 저장소 크기, 레퍼런스 규모.
- 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
Section V · Diagnosis and Recovery
Git을 계측하고, 느린 계층을 찾아내며, 높은 효과를 주는 설정을 적용하고, 저장소 자체에 문제가 있을 때 복구하는 방법.