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. |