When I write code for fun, I use Git. But I only have the master branch, most of my commit messages are some variant of “asdfghjkl”, and instead of isolating logically separate changes into their own commits, I just commit the state of my working tree every so often. In other words, I use Git mainly as a glorified undo.
After spending my work hours justifying and polishing every single change, it’s nice to have a more free-form process for my own stuff. In fact, while my process is partly borne out of laziness, I think it can sometimes lead to better code. If I see something that’s just a little suboptimal, I can fix it on the spot, without having to go through a bunch of process or explain why I think the new version is better.
Still, I can’t imagine living without that glorified undo. If anything, it makes the process more free-form rather than less. I can make drastic rewrites if I feel like it, safe in the knowledge that if something breaks, or if I decide halfway through that the rewrite was a bad idea, I can just `git stash` and get back to the old state (while still having the stashed changes saved if I change my mind again).