I store all my dotfiles in a dedicated git repository called dotfiles with a remote on GitHub. This allows me to track changes, and clone and pull them to other machines.
I then use stow to create symlinks to place the dotfiles in the appropriate places.
This creates symlinks from for example ~/dotfiles/.zshrc to ~/.zshrc.
stow zsh
I organize them by tool.
dotfiles/
├── zsh/
│ └── .zshrc
├── git/
│ └── .gitconfig
└── README.md
Setup a machine using dotfiles.sh.
#!/bin/bash
sudo apt install git zsh
git clone git@github.com/maxscheijen/dotfiles $HOME/dotfiles
stow git zsh
...