git.
In all honesty, I’d just write a bash script, potentially reading from a file listing all the dotfiles you want to back up, copy them into some directory and pushing to a git repo. Run that script on a systemd timer (or manually) and write another script deploying them into the correct locations
I thought about this, but doesn’t this make problems when working with other git repos in subfolders of your home directory?