0%

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 right on the page. It is not a simulation. It runs a real copy of Git on a real machine, and the mistakes you make there are real mistakes with real recovery, which is the point. A lesson later in this chapter explains that setup properly, including how you will move to your own computer.

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.