High Performance Git

Glossary

Glossary of Git Terms

Glossary. Short definitions for the Git terms introduced in the book.

B

Bundle

Single file containing Git pack data plus ref tips and prerequisite commit IDs. It may be self-contained (no prerequisites) or incremental (requires prerequisite commits in the destination repository).

See: Chapter 15: Bundles and Bundle URIs

Bundle URI

Clone-time mechanism for seeding repository data from a bundle location before normal fetch negotiation continues.

See: Chapter 15: Bundles and Bundle URIs

C

Changed-Path Bloom Filter

Probabilistic filter attached to commit-graph data that helps Git skip commits unlikely to affect a requested path.

See: Chapter 9: Commit-Graph, Bloom Filters, MIDX, Bitmaps

Cherry-Pick

Operation that reapplies the change from an existing commit onto the current HEAD by creating a new commit.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Commit-Graph

Serialized file that stores commit metadata and parent relationships in a traversal-friendly form.

See: Chapter 9: Commit-Graph, Bloom Filters, MIDX, Bitmaps

Cone Mode

Sparse-checkout mode where users specify directories, and Git expands those into a restricted high-performance pattern set.

See: Chapter 11: Sparse-Checkout and Sparse-Index

Conflict

Situation where Git cannot automatically combine competing file states and needs you to resolve the result before it can continue.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Cruft Pack

Separate pack containing unreachable objects so they can be retained and expired more efficiently than as many loose files.

See: Chapter 10: Git GC and Maintenance

D

Delta Object

Packed representation stored as a set of instructions relative to another base object.

See: Chapter 7: Loose Objects, Packfiles, Delta Compression

E

Enlistment

Scalar's top-level project directory, which usually contains the Git worktree in a src/ subdirectory.

See: Chapter 13: Scalar, Prefetch, Large Repositories

F

Fast-Forward

Ref update that advances a branch name to a descendant commit without creating a merge commit.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Fsmonitor

Integration that lets Git learn which paths changed from a filesystem monitor instead of probing every tracked path itself.

See: Chapter 8: The Index as a Performance Structure

G

git backfill

Command that batch-downloads missing blobs for a partial clone ahead of time instead of faulting them in one by one.

See: Chapter 12: Partial Clone and Promisor Remotes

git fsck

Command that verifies object connectivity and validity in the repository database.

See: Chapter 21: Recovery and Repair

git gc

Git housekeeping command that repacks data, prunes stale state, and updates related repository metadata.

See: Chapter 10: Git GC and Maintenance

git maintenance

Command that runs and schedules repository optimization tasks such as commit-graph updates, repacking, loose-object cleanup, and related upkeep.

See: Chapter 10: Git GC and Maintenance

H

HEAD

Special ref that usually names the current branch, or directly names a commit in detached state.

See: Chapter 3: Refs, HEAD, Reflogs, Index

I

Index

Serialized staging and path-state structure that defines the next snapshot.

See: Chapter 3: Refs, HEAD, Reflogs, Index

Index Entry

Per-path record in the index containing staged object identity plus cached filesystem state and flags.

See: Chapter 8: The Index as a Performance Structure

L

Linked Worktree

Additional working tree attached to the same repository, sharing the common object store while keeping its own checkout state.

See: Chapter 6: Worktrees as a Performance Tool

Loose Object

Individual object stored as its own compressed file in the object database.

See: Chapter 7: Loose Objects, Packfiles, Delta Compression

M

Merge Base

Best common ancestor Git computes for two or more commits.

See: Chapter 4: Revisions and History Traversal

Merge Commit

Commit with two or more parent links, used to join previously separate lines of development.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Multi-Pack-Index

Repository-level index that lets Git look up objects across multiple packfiles without consulting each pack index independently.

See: Chapter 9: Commit-Graph, Bloom Filters, MIDX, Bitmaps

O

Object ID

Content-derived identifier for a Git object, produced from the object's canonical bytes under the repository's hash format.

See: Chapter 2: Git's Core Data Model

P

Pack Index

Companion file that maps object IDs to locations inside a packfile.

See: Chapter 7: Loose Objects, Packfiles, Delta Compression

Packfile

File that stores many Git objects together in compressed form, usually with an accompanying index for random access.

See: Chapter 7: Loose Objects, Packfiles, Delta Compression

Partial Clone

Repository mode where Git intentionally omits some objects during transfer and can fetch them later on demand.

See: Chapter 12: Partial Clone and Promisor Remotes

Pathspec

Git path-matching expression used to limit a command to particular files, directories, or patterns.

See: Chapter 4: Revisions and History Traversal

Prefetch

Maintenance task that fetches objects into refs/prefetch/ ahead of time so later foreground fetches need less transfer work.

See: Chapter 13: Scalar, Prefetch, Large Repositories

Promisor Remote

Remote that promises to provide omitted objects later for a partial clone when Git asks for them.

See: Chapter 12: Partial Clone and Promisor Remotes

Protocol v2

Newer Git wire protocol that separates capabilities and commands into a more structured request-response flow.

See: Chapter 14: Clone, Fetch, Push, Protocol v2

R

range-diff

Git command that compares two commit ranges as patch series, showing how the rewritten series differs from the earlier one.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Reachability Bitmap

Precomputed set representation that speeds up answering which objects are reachable from selected commits.

See: Chapter 9: Commit-Graph, Bloom Filters, MIDX, Bitmaps

Ref

Durable Git name that stores an object ID, usually the ID of a commit.

See: Chapter 3: Refs, HEAD, Reflogs, Index

Reflog

Local record of how a ref moved over time on your machine.

See: Chapter 3: Refs, HEAD, Reflogs, Index

Reftable

Newer Git ref-storage backend that stores refs and reflogs in sorted tables rather than loose files plus packed-refs.

See: Chapter 17: Large Ref Sets: Files, Packed-Refs, Reftable, and git refs

rerere

"Reuse recorded resolution," a Git feature that remembers how you resolved a conflict and can apply the same resolution again later.

See: Chapter 5: Merge, Rebase, Cherry-Pick, Rewrite

Revision

Expression that Git resolves to one or more commits or objects.

See: Chapter 4: Revisions and History Traversal

S

Scalar

Git repository management tool that configures and maintains large repositories using an opinionated bundle of features and defaults.

See: Chapter 13: Scalar, Prefetch, Large Repositories

Sparse Specification

The set of paths Git currently treats as in-scope for the user's sparse working area.

See: Chapter 11: Sparse-Checkout and Sparse-Index

Sparse-Checkout

Git feature that limits the tracked files materialized in the working tree to a selected subset.

See: Chapter 11: Sparse-Checkout and Sparse-Index

Sparse-Index

Sparse-checkout mode that represents out-of-scope regions in the index with directory entries instead of every individual file.

See: Chapter 11: Sparse-Checkout and Sparse-Index

Split Index

Mode that stores a stable shared index plus a smaller mutable overlay to reduce repeated full-index rewrites.

See: Chapter 8: The Index as a Performance Structure

T

Tag

Git label for another object, usually a commit; annotated tags are objects, while lightweight tags are plain refs.

See: Chapter 2: Git's Core Data Model

U

Untracked Cache

Index extension that caches directory mtimes so unchanged directories are skipped when looking for untracked files.

See: Chapter 8: The Index as a Performance Structure

W

Working Tree

Materialized on-disk checkout of tracked paths, plus any other files present there, distinct from the repository's stored objects and metadata.

See: Chapter 2: Git's Core Data Model