Stow is a great tool for managing dotfiles. My usage looks like cloning my dotfiles to my home directory, setting some environment variables via a script, then stowing relevant packages and boom my config is good to go…
cd ~
git clone <my dotfiles repo>
cd dotfiles
# env variable stuff ignored here
stow zsh # This will symlink my .zshrc file which is in ~/dotfiles/zsh to ~/.zshrc
By default stow will stow packages up one directory from the root directory.
In this example the root directory is ~/dotfiles and the package is zsh.
So the files in the zsh package will symlinked into ~/.
stow makes it easy to share dotfiles across machines, or safely experiment with config changes while always being protected by git since your dotfiles are in a git repo!
…They are in a git repo… right?