I think your method is reasonable too.
Personally, I prefer to meticulously verify everything myself, this means, I don't rely on a version control system. Before I initiate any major change, I keep an archived copy of the entire project then proceed to make incremental changes and repeat this cycle until the project is complete.
If I need to find differences among versions of my project, something which is _extremely_ rare, I use BeyondCompare. I say extremely rare because I usually have a detailed and complete list of changes in my mind made since the last archive. I use BeyondCompare when I don't trust my recollection to be complete or fully accurate and, that only happens when I failed to partition the project into reasonable chunks.
I find VCSs useful for teams of programmers. For a single programmer, I believe that they should not be needed because the programmer can (and should) track his/her work and should not need a vcs to do that (maybe a few more years on my back and I may need a vcs but, fortunately, not yet.)
That's why when I use some automated thing to make changes to code, I want the original code to be present in commented out form and the new code to be immediately underneath the commented out code. That way I can quickly verify every change. Also, it is extremely rare that I would use a program to make wholesale changes throughout source code, I cannot even remember if I ever used such a program. The closest I come to that is to use my editor to do search/replace on a group of files (which may be very large) that make up a project but, that means, I inspect/approve every change before it happens.
This is also one of the reason I am very careful with the use of A.I. When that stuff generates code, I re-read _every single line_ of code the thing generated and, I won't have it any other way no matter the size of the project.