OTH, for strictly personal projects you can simply create subdirectories, e.g, v1, v2...vn for every version. IOW, every time you decide to make changes that may break the program, create a new directory, "save" that version there and then work on the new version.
This is ok, if you only want to keep each final version. Personally, even for small personal projects, I prefer git.
- While I make changes (for a next version, if you can call it that) I can keep dozens of snapshots. If something goes wrong, I can exactly identify where. (squash them at the end)
- I also have a commit for ever functional change that lead to a new "feature".
- I can keep "gone wrong" trial and error branches. And later harvest them for any useful info to do a better approach. (and as branches, I can see where they fit in history / with a dozen different folders that be a challenge).
- Not to mention, it also solves synchronizing with my laptop (and VM) / and backing up all versions to an external drive. (no need for some backup software / just set a remote, and run a push when needed)
- ...