Lesson 1

What Is Git?

Learn what Git is, and how it's essential to any GameMaker project.

Loading...

What is Git and why does it exist?

Git is one of many “version control” tools, but that naming makes it sound more complicated than it really is.

At its core, a Git project is simply a folder with memory. The full Git > GitHub > GitHub Desktop stack that we’ll use in this course lets you keep track of changes you make to your files, and allows you to save those changes both locally and online.

Git doesn’t constantly autosave your project, so it isn’t a complete magic bullet that means you can never lose progress again. What it does give you is a simple way to save changes in a structured and searchable way, with the ability to restore your project to previous points you saved.

This makes understanding the history of your project, as well as keeping backups, much simpler than many other methods people try.

Manual backups = pain

Usually, what I see beginners doing is a bunch of versioned zips: my_game01.zip, my_game_real_final.zip, my_game_added_jumping.zip, etc. Then they might also be copy + pasting these zips onto a thumb drive, or an external hard drive. Maybe onto a OneDrive folder or some other cloud-based solution as well.

That’s if they are keeping backups at all.

The very real reality is that I’ve seen dozens upon dozens of full projects completely lost, with people having to start again from scratch, because of bad backup practices.

Version control simplifies this whole process, while also hardening the result, so it’s much more difficult to lose your work.

It also lets you do experimental work or changes easily, without messing up the working version of your actual project.

Don’t leave it till later

Once people become aware of version control software, like Git, they often put off learning it.

“I’m only at the beginning of my project, I’ll learn it later.”

“It looks complicated, I don’t want to deal with it now.”

“I don’t have the time.”

The reality is that setting up Git can be super quick and easy, and you should be making every project you are working on a Git project. You never know when a lightning strike will blow your hard drive (I’ve personally had a computer fried from a lightning strike nearby that came out of a clear sky, lol).

The less time you have to work on your project, or the less confident and quick you are with coding, the more important version control becomes.

Even losing half a day’s work can be very demotivating, especially if you only have half a day per week to work on your project, or that half a day’s work was the point where you finally got some system working and you aren’t even 100% sure how you did it.

Now imagine that with a nearly complete project that you’ve been working on for months or even years.

I’m trying very hard to impress upon you that version control, like Git, is absolutely essential to learn early on in your programming journey. It’s not something to put off until later. Learn it today, and use it for all your projects.

By the end of this course, you’ll be able to create Git projects, save useful checkpoints, publish your project to GitHub, recover older work, and safely undo mistakes, all with a few clicks of some buttons.