I regularly work on a desktop computer, a laptop or two, a handful of VMs, and several remote servers.

I tweak my config files (e.g. .emacs, .zshrc, .ssh/config) on a regular basis (i.e. almost constantly).

Keeping shell aliases, emacs configuration, and other settings the same across all of these multiple computers is a major hassle. (It's annoying when you try to use an alias that you defined on serverA that doesn't (yet) exist on laptopB.)

I wrote dotfiles to use git to manage all of these files. Dotfiles lets you add config files to a git repo, and then when you make changes to any file, you can push those changes to a central git repo. All of the machines that are using dotfiles can pull changes from the central repo and stay synchronized.

Get dotfiles at github.