What is Version Control?

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

Imagine this scenario:

  • You are working on a final year project report.
  • You save files like Final_Report.docx
  • Then Final_Report_v2.docx
  • Then Final_Report_FINAL_REAL.docx

Version Control (Git) solves this chaos professionally.

📜 History of Git

The Origin Story (2005)

  • Created by Linus Torvalds (creator of Linux).
  • Linux kernel development needed a better VCS.
  • Existing options were either too slow or proprietary (BitKeeper).

The Philosophy

  • Linus wanted something fast, distributed, and safe.
  • He wrote the first version of Git in just 2 weeks!
  • Today, it is the standard for software development worldwide.

Why Version Control is Non-Negotiable

Without Version Control (The Nightmare)

  • Files named final_v9_REALLY_FINAL.java
  • Commenting out code blocks just to 'save' them
  • Emailing zip files to your teammates
  • "It works on my machine" but breaks on yours

With Git (The Professional Way)

  • A clear, linear history of every modification
  • Instant rollback to the last working state
  • A single source of truth for the entire team

Evolution of Version Control

Local VCS

Files saved on a single computer. Hard to collaborate, high risk of data loss.

Centralized VCS (CVCS)

Single server contains all files. If server fails, everyone is stuck. (e.g., SVN).

Distributed VCS (DVCS)

Every client mirrors the repository. Full backup on every machine. Offline work possible. (e.g., Git).

Why Tech Giants Use Git?

🚀

Speed

Git is extremely fast. Operations like branching and merging are instantaneous.

🛡️

Integrity

Everything is checksummed. It's impossible to change file contents without Git knowing.

🌿

Branching

Killer feature. Cheap and easy branching encourages non-linear development workflows.

Case Studies: Scale of Version Control

G

Google

  • • Uses a massive monolithic repository (Piper).
  • • Billions of lines of code.
  • • 40,000+ commits per day.
  • Why? Code sharing and unified dependency management.
M

Microsoft

  • • Windows OS repo is 300GB+.
  • • Created VFS for Git to handle this scale.
  • • 4,000 engineers working on the same repo.
  • Why? Git allows them to manage this complexity.

Under the Hood: The .git Folder

Git isn't magic. It's just a folder named .git hidden in your project.

.git structure
  • HEADPointer to your current branch (e.g., refs/heads/main)
  • configYour local settings (remote URLs, user info)
  • objects/The database! Compressed files and commits live here.
  • refs/Bookmarks for branches and tags.

The Three Tree Architecture

To understand Git, you must understand the three states of a file.

1. Working Directory

The actual files on your hard drive that you edit.

2. Staging Area

A "holding zone" for changes you want to commit.

3. Repository

The permanent history stored in .git.

Key Terminology

Repository (Repo)The project folder containing all files and history.
CommitA snapshot of your files at a specific point in time.
BranchA parallel version of the repository for isolated work.
MergeCombining changes from one branch into another.
RemoteA version of the repository hosted on the internet (GitHub).
CloneDownloading a repository from a remote server.