Version Control
A system recording the history of a project's files, enabling branching, merging, and recovery.
Version control records the successive states of a project so that any past state can be recovered, changes can be attributed, and independent work can proceed in parallel and be recombined. Git is the near-universal implementation.
Git's model is worth understanding directly, because most confusion with it comes from working against the model rather than with it. A repository is a content-addressed object store: every file version, directory tree, and Commit is stored under the hash of its contents, and a commit records a tree plus its parents. Branches are just movable pointers into that graph. Nothing is ever modified in place; operations that appear to rewrite history create new objects and move pointers.
Two consequences matter constantly. Anything committed is recoverable, even after a branch is deleted or a reset appears to destroy it — the objects persist until garbage collection. Anything not committed is not protected, which is why a destructive command in a shared working directory is genuinely destructive and why committing frequently is a safety practice rather than a bookkeeping one.
History is also a document. It is the durable answer to why is this here, which is what makes a change description part of the deliverable rather than paperwork; see Provenance.
See also7
Commit
A recorded snapshot of a project with a message explaining it.
Version Control & Delivery9 connections
Branching Model
The convention governing what branches exist, what they mean, and how work reaches production.
Version Control & Delivery12 connections
Three-Way Merge
Combining two lines of work by comparing both against their common ancestor.
Version Control & Delivery11 connections
Git Worktree
An additional working directory attached to one repository, each on its own branch.
Version Control & Delivery10 connections
Hash Function
A function mapping arbitrary input to a fixed-size digest, used for identity, integrity, and addressing.
Systems & Tooling20 connections
Monorepo
Several packages developed in one repository with shared tooling and atomic cross-package changes.
Systems & Tooling11 connections
Regression
A previously working behavior that a change has broken.
Method19 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from18
- Atomic CommitVersion Control & Delivery
A commit containing exactly one logical change, complete and independently sound.
- Binary SearchComputation & Algorithms
Finding a value in a sorted range by repeatedly discarding half of it.
- Branching ModelVersion Control & Delivery
The convention governing what branches exist, what they mean, and how work reaches production.
- CommitVersion Control & Delivery
A recorded snapshot of a project with a message explaining it.
- Commons-Based Peer ProductionMeaning & Society
Large-scale production coordinated by modular tasks and volunteer contribution rather than price or hierarchy.
- Conventional CommitsVersion Control & Delivery
A lightweight convention giving commit messages a machine-readable type and scope.
- Git WorktreeVersion Control & Delivery
An additional working directory attached to one repository, each on its own branch.
- GitOpsVersion Control & Delivery
Using a Git repository as the live source of truth for deployed state, reconciled continuously by an in-cluster agent.
- Hash FunctionSystems & Tooling
A function mapping arbitrary input to a fixed-size digest, used for identity, integrity, and addressing.
- Infrastructure as CodeVersion Control & Delivery
Defining infrastructure in version-controlled files instead of configuring it by hand through a console.
- MonorepoSystems & Tooling
Several packages developed in one repository with shared tooling and atomic cross-package changes.
- Path DependenceMethod
Outcomes shaped by the sequence of past choices rather than by present merit.
- Permissive LicenseVersion Control & Delivery
A license family that imposes little beyond attribution and a warranty disclaimer.
- ProvenanceMethod
The recorded origin of a change or a claim — who made it, when, and on what evidence.
- RebaseVersion Control & Delivery
Replaying a branch's commits onto a new base, producing new commits with the same changes.
- RegressionMethod
A previously working behavior that a change has broken.
- Squash MergeVersion Control & Delivery
Collapsing a branch's commits into one before merging, trading granularity for a clean main history.
- Three-Way MergeVersion Control & Delivery
Combining two lines of work by comparing both against their common ancestor.