Chapter 1
What Version Control Is For
Welcome to the Course
Hi, I’m Erik. I write and maintain this course, along with the rest of Python Land. I made it for anyone whose project folder has quietly filled up with report-final.txt, report-final-v2.txt, and report-final-actually.txt, and who suspects there is a better way.
There is. Git is the tool most of the software world uses to keep track of how a project changed, why it changed, and how to get an earlier version back. It has a reputation for being difficult, and some of that reputation is earned. Most of it comes from being taught as a list of commands instead of as an idea with commands attached.
You may have arrived here from somewhere else
Other Python Land courses link straight into the middle of this one, at whichever lesson explains the thing they needed. So the lessons here are not locked. Those linked lessons explain their starting situation and provide a prepared project where needed. Other practice lessons build on the work from earlier in their chapter, so follow the chapter order when learning a topic from the beginning.
If you are starting from the beginning, the order is deliberate. The first chapter is about what version control is actually for, before any commands appear at all.
How you will practice
Most lessons give you a
There is no prize for rushing. If something does not make sense the first time, that is normal, and Git in particular tends to click on the second or third encounter rather than the first.
This site should work fairly well on a small screen, like your mobile phone. Try it; you can read a lesson or two while waiting for something or someone. Learning takes plenty of repetition, so a quick re-read of an earlier lesson is time well spent. Typing into a terminal goes better with a real keyboard, so save the hands-on lessons for when you are at your computer.
Meet Monty
Monty is Python Land’s learning guide, and you will find it beside every lesson. You can ask for another explanation, ask what a message from Git actually means, or ask for a hint that gets you moving again without handing you the answer.
Monty is included free throughout this first chapter. Open it now and ask:
Why do programmers need version control when they already have backups?
Ask a follow-up if part of the answer is unclear. Monty knows which lesson you are reading, so you do not need to explain the situation from the start.
After Chapter 1, full Monty support is part of the Guided subscription. The course is written to stand on its own without it. Guided is there for the moments when a second explanation would save you an hour of guessing.
Practice with disposable projects
Git helps you recover versions you recorded, but it cannot recover every edit you never saved in Git. There is a chapter on exactly that: you will learn what each undo command keeps, what it discards, and how to look for a missing
The practice projects on this page are disposable. Break them on purpose if you like. That is often the fastest way to understand what a command really did.
When you are ready, press Mark complete and we will start with the folder full of copies.