Python task manager from scratch, part 5: Setting up version control

Hello and welcome to the most controversial choice I've made so far in writing this tutorial. We're going to set up version control. First: how? Second: why?


The good folks at GitHub have an excellent quickstart. I can't improve on it.


To work on a software project, you need to be able to change your code effectively and responsibly. Version control is the best (and only) method the discipline has for that.

To work on a large software project, many people need to be able to change its code safely and often simultaneously. Version control is the best (and only) method the discipline has for that. (There are many things that many other disciplines do better than software, but the mechanics of collaboration is an area in which software is way ahead.)

Almost all modern software projects need to synchronize code across computers. GitHub is a good central place to store your code so that many computers can access it.

Although git is complicated, you only need to know a little bit of it to use it effectively. Think of it like using a cloud email provider. It's complicated, and probably has a lot of features you don't understand or use. That doesn't mean you should keep from using it until you understand it better!

So. Please turn your veery/ directory into a git directory and get it synced up with some cloud service (I linked you to GitHub above but there are many other options). From now on, instead of copying and pasting various files here, I'll link you to each new commit in my veery/ repository.

To summarize:

  1. Version control is an absolutely fundamental tool in making software. It's nearly impossible, simply on a mechanical level, to work on a large and/or collaborative software project without it.
  2. git is the most common modern version control system.
  3. Although git is weird, GitHub has wonderful documentation, and many many many people have answered almost any question you might have about git. (Google it!)
  4. Learning more and more about git will make you a more and more effective coder. But the very, very basics are enough for now. Feel free to treat git commands as magic incantations, or use a graphical interface, or do anything else. People will say that you need to understand the deep mechanics of git before you can do anything else. That is false. For now, it is simply a tool you need to be using, however primitively.

And, as always, I'm not including specific instructions here. That's not because it's easy or because you should understand it already; it's just because many excellent instructions already exist.

Good luck!

Next post: Python task manager from scratch, part 6: Adding a .gitignore

Home page