My personal dotfiles managed using GNU Stow.
(mainly for MacOS but also Linux & Windows to some degree)
./dotfiles.sh install work # or: perso
./dotfiles.sh install # reuses the environment saved in ~/.dotfiles-env
./dotfiles.sh uninstallPackages named ~macos / ~linux / ~windows are stowed only on the matching
platform, and ~work / ~perso only for the selected environment. Put anything
that differs between the work and personal machine (git identity, ...) in those.