고성능 Git
Source: Hacker News

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