Overview

Version control systems (VCS) are foundational tools in modern software development. They track every change made to a codebase, allow multiple developers to collaborate without overwriting each other’s work, and provide a complete history that can be inspected or rolled back at any point.

The distributed VCS model, pioneered by Git, gives every developer a full copy of the repository history, enabling offline work and flexible branching workflows.

Tools in This Section

Git

The dominant distributed version control system. Virtually every software project uses Git for tracking changes, branching, and merging. Created by Linus Torvalds in 2005.

GitHub

A cloud-based hosting platform for Git repositories. Adds collaboration features: pull requests, code review, issue tracking, Actions (CI/CD), and GitHub Pages for static site hosting.

Changelog

A document listing significant changes made in each version of a software project. Changelogs communicate what changed, when, and why, helping users and developers understand the evolution of a project.

Git Send-Email

The original Git contribution workflow: patches sent over email via git format-patch and git send-email, reviewed on mailing lists, applied with git am. Used by the Linux kernel, Git itself, PostgreSQL, and forges like Sourcehut.

Key Concepts

  • Repository: A directory tracked by Git, containing the full history of all changes
  • Commit: A snapshot of changes with a message describing what changed and why
  • Branch: A parallel line of development that can be merged back into the main line
  • Pull Request: A proposal to merge changes from one branch into another, with review
  • Tag: A marker on a specific commit, typically used for release versions

4 items under this folder.

Git Send-Email

Email-driven Git contribution workflow using git format-patch, git send-email, and git am for patch-based code review.

Changelog

A curated, chronologically ordered record of notable changes made in each version of a software project, following the Keep a Changelog convention

Git

Distributed version control system created by Linus Torvalds in 2005 to coordinate Linux kernel development. Every developer holds a full copy of the repository history.