The first time I had to hand a project off to someone else, my version control system was a folder named project_final_v2_ACTUALFINAL, zipped and emailed. It worked, right up until we both had it open on the same day and one of us overwrote the other's changes with no way to tell what got lost. Git and GitHub exist specifically to make that scenario impossible.

Git is version control software that runs entirely on your own computer. It watches a folder you tell it to track and lets you save a snapshot of it — a commit — whenever you reach a point worth keeping. Every commit records exactly what changed and why, and you can step back to any earlier snapshot at any time. None of that needs an internet connection or an account anywhere; Git works the same way on a laptop on a plane as it does anywhere else.

GitHub is a separate, related thing: a website built around Git. It hosts a copy of your project's full commit history online, so instead of that history living on exactly one hard drive, it lives somewhere anyone you invite can reach too. Push your commits up to GitHub and they're backed up and shareable; pull someone else's commits down and your local copy catches up with theirs. Git is the tool that tracks the history; GitHub is where a shared copy of that history lives.

Git was built for Unix-style systems, and its commands assume a Unix-style terminal — something Windows doesn't include by default. That's what Git Bash is: a terminal window, installed alongside Git for Windows, that understands both Git's own commands and the basic Unix commands (cd, ls, mkdir) that most Git tutorials, this series included, are written around. You can use Git on Windows without it, but Git Bash is the path with the fewest surprises, and it's what the rest of this series uses.

Beyond backup, GitHub is where the actual collaboration happens. Every commit is attributed to whoever made it, so a project's history doubles as a record of who did what and why. Two people can work on the same files at the same time without emailing zip files back and forth, because Git merges separate sets of changes automatically in most cases and only asks for help on the few it can't. And because GitHub is the standard place code lives, a GitHub profile with real commits on it doubles as a portfolio — it's usually the first thing a collaborator or employer looks for.

To get started, download Git for Windows from git-scm.com/download/win — that installer is what brings Git Bash with it. Run it and accept the defaults; the handful of settings it asks about along the way aren't worth agonizing over, and every one of them can be changed later. Once it finishes, right-click any folder in File Explorer and check for a "Git Bash Here" option in the menu — if it's there, the install worked, and you're ready to create your first repository.

Continue reading: Setting Up Your First GitHub Repository →