You may not think that you need version control for a "hobby" project until you need it! The code base for the 'Bot is getting pretty hefty and I have had a couple of times when I have implemented a series of changes and had some unexpected breakage. I have implemented some pretty sophisticated version control as part of my Form Builder for PHP project (where all updates to test and production are done via diff files generated from development) but until this week had not been using any versioning for the 'Bot.
There are some simple ways to maintain versions of code. If your operating system supports file versioning you can simply turn that on. You can make periodic copies of your code directory. If you are using a backup solution it likely maintains versions of current backups. These all work but don't offer the additional functionality of a versioning tool like Apache Subversion combined with a front end like SmartSVN.
Below is the primary form from SmartSVN. It shows the directory structure for your project and the files from the currently selected path. Only files that you choose to be versioned will show in this list (in my case Python files). If a file has been modified but not committed it will show as changed.
The bottom of the above form shows the latest revisions. If you select a revision you can then see what changes were made as part of that commit.
You can, at this point if you realize where you have shot yourself in the foot, reverse those changes!