What exactly are dotfiles some of you might ask? It's those little settings file that swirl around in your $HOME directory (~) on your Linux or Mac OS X machine and sometime you have to change them to adjust your configuration with them.
What are dotfiles?
These might include settings for vim, screen, tmux, bash, zsh or aliases you use for your daily work on these systems. Or some tools you have written to automate tasks that would otherwise include a list of commands but is now down to a single command.
How I came to put them there ...
I had a fairly big amount of these settings and tools that I carried with me. I used to copy them from machine to machine, whether new physical machines or VMs. It was hilarious! I often forgot some and some were lost - forever - till I packed them all in a git repository and put them on Github. Needless to say I didn't put any sensitive data up there ...
Turned out I am not the only one doing this, in fact, there is already an unofficial guide about dotfiles on github out there: dotfiles.github.com. And many software developers share their settings, aliases and small tools there, too. I advise you to look at their configurations and tools. You can learn a lot from them and of course get some of their tools and use it yourself. These are very interesting setups:
Many of those use frameworks to build upon for their configuration. I am using prezto, which is a fork of oh my zsh, but with better performance and some more features. It allows you to add plugins for git, syntax highlighting, tmux, screen and many, many others very easily and gets you going in no time.
Github calls itself a social coding platform and I think it's a very good aspect to share also some tools and settings we use for our daily work. My dotfile repository was to this date forked by five other people and everyone picked the things they liked and threw away the other stuff and added their configurations. And I love that, because I learned some new tools, too :)
I would love to see a link to your Github dotfiles repository in the comments. Come on, it's easy and you will earn a lot from it!