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