Skip to content

What Is Version Control and Why It Matters

Every developer who has worked on a project for more than a few days has hit the same wall: something stopped working, and they cannot remember what they changed. Or two people edited the same file at the same time and overwrote each other’s work. Or a “quick fix” broke something that had been working for weeks, and rolling it back by hand took longer than the fix itself.

Version control exists to solve all of these problems. Git is the tool the entire industry settled on.

Picture a folder called summit-trail-outfitters on your desktop. You make changes, things break, you fix them, you move on. After a month, that folder looks something like this:

summit-trail-outfitters/
index.html
index-backup.html
index-old.html
index-working.html
styles.css
styles-before-nav-change.css
main.js
main-final.js
main-FINAL-v2.js

This is version control implemented with fear. It does not tell you what changed between main-final.js and main-FINAL-v2.js. It does not tell you who made the change or why. And it takes up space without giving you any real safety — you still cannot easily go back to any specific point in time.

A version control system (VCS) tracks the complete history of a project as a series of snapshots. Each snapshot records:

  • What changed — which files, and exactly which lines
  • When — the date and time of the change
  • Who — the author of the change
  • Why — a commit message explaining the intent

With a VCS, the folder above becomes this:

summit-trail-outfitters/
index.html
styles.css
main.js

Three files. One copy of each. The full history lives inside the VCS and you can retrieve any version of any file at any time.

Git is a distributed version control system. Every person who works on a project has a complete copy of its entire history on their own machine. You do not need a network connection to commit, view history, or create branches. When you are ready to share your work, you push it to a shared repository (usually hosted on GitHub).

This is different from older centralized systems where all history lived on a single server. With Git, there is no single point of failure, and working offline is fully supported.

Git tracks text files well — source code, HTML, CSS, JavaScript, Markdown, configuration files. It stores them efficiently as compressed snapshots, not duplicated copies.

Git does not track large binary files (images, videos, compiled binaries) in the same efficient way. Those files exist in the repository but take up full space with each change. For the Summit Trail Outfitters site, Git will track all your code files and leave image files in place — which is exactly the right approach.

Git is not one option among many. It is the industry standard for version control, used by individual developers, small teams, and companies with thousands of engineers. GitHub, which hosts Git repositories, is where virtually all open-source software lives and where employers look at your work.

Learning Git is not optional for a working developer — it is the tool your code moves through on its way from your machine to production.

This lesson is conceptual — no commands to run yet. Instead, take a look at your STO project folder and count how many backup or “old” copies of files you have made. Note what information those copies do and do not preserve. By the end of this module, all of that will be replaced by a proper commit history.

  • Version control tracks the complete history of a project as snapshots, recording what changed, when, who made the change, and why.
  • Without version control, developers resort to file-old.js and file-backup.css copies that preserve nothing useful.
  • Git is a distributed VCS — every contributor has a full local copy of the history.
  • Git tracks text files efficiently. It exists on your machine and can work without a network connection.
  • GitHub hosts Git repositories and is where the industry shares and reviews code.

The next lesson covers installing Git on your machine and running the one-time configuration that identifies you as the author of every commit you make.