You can use Syncthing to, aptly, sync the files between machines and always have the latest copy everywhere — including your phone, if you so wish. On a new machine, you would probably ssh to another one and copy the files before having Syncthing properly installed (if you have apps setup automated).
Inside the dotfiles, I typically have separate configs between the machines, because they differ enough to have to be adjusted. But for me, it's just separate Ansible playbooks and tasks in a common directory, which I lug around from one machine to another.