---
title: "Source Control"
date: 2019-06-09T20:17:54-07:00
weight: 10
---

I _strongly_ recommend using some kind of source control software. It is incredibly foolish to develop without it. Source control maintains snapshots of your code, which lets you make changes without worrying about accidentally ruining things. It also lets you easily work in parallel with other developers.

I strongly recommend [Git](https://git-scm.com/). You'll have to download and install it if you're on Windows.

There is an excellent tutorial on how to use Git [on the Git website](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control).

The basic Git workflow is this: when you make changes, you review them and "stage" them, and then "commit" them with a message. Think of a commit as freezing your code at a particular place in time. You can always revert to this exact place once you commit. You can also make "branches", which are a sequence of commits that you can merge into other branches. All of this is incredibly useful and should become part of your regular programming workflow.

You can also synchronize your "Git repository" with a remote server, meaning it will be backed up and centrally accessible. I recommend doing this. [BitBucket](https://bitbucket.org/product/) and [GitLab](https://gitlab.com) are popular services, and both provide free accounts with unlimited private repositories. They will give you instructions for how to create a new repository. 
