CI/CD & DevOps

What is Version Control?

Version control systems track every change to code over time, enabling collaboration, rollback, and a full audit trail of who changed what and why.

By the Hyrax team·4 min read·May 1, 2026
TL;DR
  1. 1.Why Version Control is Non-Negotiable
  2. 2.Types of Version Control Systems
  3. 3.Core Concepts
  4. 4.Branching Strategies
  5. 5.Version Control and Autonomous Code Governance

Version control is a system that records every change made to a file or set of files over time, allowing teams to recall specific versions later, understand the history of changes, collaborate without overwriting each other's work, and roll back to a known good state when something goes wrong. It is the foundation on which all of modern software development is built.

Why Version Control is Non-Negotiable

Without version control, teams rely on file naming conventions like final_v3_FINAL_actual.js and emailing code between collaborators. This makes collaboration impossible at any scale, eliminates the ability to understand why code changed, and makes rollback a manual and error-prone process.

Types of Version Control Systems

Local Version Control

The earliest systems like RCS kept a local database of patches. There was no central server and no way to collaborate. A single machine failure could destroy all history.

Centralized Version Control

Systems like Subversion (SVN) and CVS introduced a central server. All history lived on the server; developers checked out working copies. This enabled collaboration but created a single point of failure and required network access to commit.

Distributed Version Control

Systems like Git and Mercurial give every developer a complete copy of the repository including full history. Commits happen locally; synchronization with remote servers is a deliberate push or pull operation. This eliminates the single point of failure and enables offline work.

TypeExamplesKey Characteristic
LocalRCSSingle machine; no collaboration
CentralizedSVN, CVSCentral server; network required to commit
DistributedGit, MercurialFull local copy; offline commits supported

Core Concepts

  • Repository — the database containing all versions and history
  • Commit — a snapshot of changes with a message, author, and timestamp
  • Branch — an isolated line of development diverging from the main history
  • Merge — combining changes from one branch into another
  • Tag — a named reference to a specific commit, typically a release
  • Remote — a copy of the repository hosted on another machine or server

Branching Strategies

How teams organize branches is as important as the tool itself. Common strategies include GitFlow (long-lived feature and release branches), trunk-based development (short-lived branches merged to main daily), and GitHub Flow (a simplified GitFlow for web services).

Version Control and Autonomous Code Governance

Every autonomous code governance action taken by Hydra is expressed as a version-controlled code change — a pull request with a description, a traceable author (the Hydra service account), and a full diff. Version control is the medium through which governance is applied, reviewed, and audited, making the complete history of automated changes first-class citizens in the repository.

Frequently Asked Questions

What is the difference between Git and GitHub?

Git is the distributed version control system. GitHub is a web platform that hosts Git repositories and adds collaboration features like pull requests, code review, issue tracking, and CI integration. GitLab and Bitbucket are similar platforms.

What is a merge conflict?

A merge conflict occurs when two branches change the same lines of a file in different ways. The version control system cannot automatically resolve which version is correct and requires a human to choose.

What is a monorepo?

A monorepo is a single repository containing multiple projects or services. Companies like Google, Microsoft, and Meta maintain monorepos for unified dependency management, consistent tooling, and atomic cross-project changes.

Should binary files be stored in version control?

Not in standard Git. Binary files like images and videos are better stored in Git LFS (Large File Storage) or a dedicated asset management system, as they cannot be diffed meaningfully and bloat the repository history.

Frequently Asked Questions

What is the difference between Git and GitHub?

Git is the distributed version control system. GitHub is a web hosting platform built on top of Git that adds pull requests, code review, and CI integration.

What is a merge conflict?

When two branches modify the same lines differently and the system cannot automatically determine which version is correct.

What is a monorepo?

A single repository containing multiple projects, enabling unified dependencies and atomic cross-service changes.

What is a commit?

A snapshot of changes with an author, timestamp, and message describing what changed and why.

Stop flagging. Start fixing.

Hyrax reviews your pull requests, remediates issues autonomously, and closes the ticket.

Join the waitlist