Other than just using a dotfile repo as literal dotfiles, just copying what you’re currently using; the the two intermediate ‘styles’ of dotfile management are:

  • a bare git repo, what yadm automates (what I currently use)
  • a symlink farm, like stow

I currently use yadm. The tradeoff is (unlike stow) you don’t have to keep track of multiple copies/symlinks, but it does mean you have to maintain a huge gitignore to ignore all files you don’t want to commit.

yadm also has a ‘bootstrap’ script, which just makes it nicer to deploy as I’m setting up a new machine.

Above that, is probably using nix to declare more reproducible builds.