As you probably know, Git has been getting a lot of attention and momentum lately and all kinds of crazy usages for Git are devised almost daily. Besides the usual source code management, writers are using it to track their books sources(think postscript), digital artists are using it to track their content creation, lots of people are using it for backup purposes and some crazy people are even thinking about creating a filesystem based upon Git’s workflow and paradigms.
I myself am using Git for all kinds of things, be it backup, bookmarks, documents and of course source code(basically everything that is subject to change, versioning, snapshoting and reverting), but in the last couple of months i’ve been using Git to track something special, the /etc/ configuration directory on *NIX systems. I am sysadmin on several boxes, including the one that’s hosting this site and let me tell you, in these couple of months that i’ve been tracking /etc/ directories using Git, it saved my ass a couple of times and lots of productivity, thus resulting more free time to drink beer and do mostly useless stuff. It saves your ass when you fuck up, it gives you hassle free opportunities to test out new configurations, you can keep an eye on automated or undesired configuration changes and of course the usual lazy snapshots/backups. This is great, because once you get comfortable with git, all of this comes naturally to you, i didn’t have to read about it or anything like that, the idea just came to my mind and seemed pretty normal and right. Once you get into the git mindset, this becomes conventional thinking.
No wonder that Git’s man page first line is “git – the stupid content tracker”, because indeed it is stupid, stupid in the sense that it doesn’t care about the actual content you are tracking, the content is transparent and not interesting to git. This kind of stupidity is great, it is simplicity and simplicity leaves room for innovation and creativity. Cool.