Skip to content

Glossary

One-line definitions of the Git terms used across this folder. Each entry links to the topic that explains it in full.


A to D

Term Definition
Annotated tag A full tag object with a tagger, date and message, and can be signed. See Tags and Releases.
Bare repository A repo with no working tree, holding only the object store, used as a remote. See Remotes.
Bisect A binary search over history for the first commit that broke something. See Bisect.
Blob The object type holding file content, with no name or metadata. See Object Model.
Cherry-pick Applying one commit's change onto the current branch as a new commit. See Cherry-Pick.
Commit An object tying a tree snapshot to its parents, author and message. See Object Model.
Conflict marker The <<<<<<<, =======, >>>>>>> lines Git writes where two changes overlap. See Conflict Resolution.
Content-addressed Objects are named by the hash of their content, giving dedup and integrity. See Object Model.
DAG Directed acyclic graph: the shape of commit history, each commit pointing at parents. See Refs and HEAD.
Detached HEAD HEAD pointing straight at a commit rather than a branch. See Branches.

E to L

Term Definition
Fast-forward Moving a branch ref forward with no merge commit, when it has no divergent work. See Merging.
Fetch Downloading refs and objects from a remote without changing any branch. See Remotes.
Force-with-lease A force push that refuses if the remote moved since your last fetch. See Pushing and Pulling.
Gitlink A tree entry (mode 160000) storing a submodule's pinned commit SHA. See Submodules.
HEAD The ref naming the current commit, usually via the current branch. See Refs and HEAD.
Hunk A contiguous block of changed lines in a diff, the unit add -p stages. See Staging and Committing.
Index The staging area between the working tree and the next commit. See The Three Trees.
Loose object An object stored as its own zlib-compressed file before packing. See Packfiles and GC.

M to R

Term Definition
Merge base The most recent common ancestor of two commits. See How Merge and Rebase Work.
ORIG_HEAD The tip before the last reset, merge or rebase, for quick undo. See Reflog and Recovery.
Packfile A compressed file holding many objects as deltas, for storage and transfer. See Packfiles and GC.
Partial clone A clone that skips blob content, fetching it on demand. See Large Repos.
Rebase Replaying commits onto a new base, creating new commits with new SHAs. See Rebasing.
Ref A name (branch, tag, HEAD) pointing at a commit. See Refs and HEAD.
Reflog A local log of every move of HEAD and branch tips, for recovery. See Reflog and Recovery.
Remote-tracking branch A local ref (origin/main) mirroring a branch's last-fetched state. See Remotes.
rerere Reuse recorded resolution: Git replays a past conflict fix automatically. See Conflict Resolution.

S to Z

Term Definition
Shallow clone A clone limited to the last N commits with --depth. See Large Repos.
Snapshot Git's model: each commit records a full tree, not a diff. See What Is Git.
Sparse-checkout Materializing only chosen paths in the working tree. See Large Repos.
Stash A shelf holding working-tree changes as commits, off any branch. See Stashing.
Submodule Another repository embedded at a path as a pinned commit. See Submodules.
Three-way merge Combining two branches using their changes against the merge base. See How Merge and Rebase Work.
Tree The object type holding a directory listing of blobs and subtrees. See Object Model.
Upstream The remote branch a local branch tracks, shown as [ahead/behind]. See Pushing and Pulling.
Working tree The checked-out files you edit, one of the three trees. See The Three Trees.
Worktree (linked) An additional checkout attached to one repository's object store. See Worktrees.