Config files > Github

I’ve been at my new job for two weeks now. Im learning a ton and really enjoying it. But this post isn’t about that. I’m going to give it a few more weeks until I write the to-be-expected My First Weeks as a Developer post. Instead, this post is a quicky about how to setup all your dev application config files with Github so that they are never lost, always updated, and able to be pulled down onto a new machine from anywhere.

The philosophy with all my personal electronics is that everything should live somewhere other than the device. It was more work a few years ago to make that happen, but with high speed internet just about everywhere and cloud storage dirt cheap its really not that big of a deal. Right now I could drop all my devices into a river, walk into an electronics store, buy new ones, and in about 10 minutes be back up and running as if nothing happened. Its nice peace of mind to have.

Before I started my new gig, I completely wiped my laptop and installed a fresh OS. After that process I started wondering what the most efficient way was to keep all my developing application (iTerm, Atom, VIM, etc) config files backed up so that I never had to worry about losing all their respective customization. Initially, I just found the corresponding files and pulled them up to my Google Drive. It wasn’t efficient, but at least they were up in the almighty cloud.

After a few iterations of manually pusing individual config files to my Google Drive I figured that there had to be a better way. I mean, at that point I had pulled down three different repos for work and made more than a few branches and commits on each. Surely if I could pull down and push up that kind of info I could do the same for my config files. It took all of 30 seconds of searching to find the right article:

https://www.digitalocean.com/community/tutorials/how-to-use-git-to-manage-your-user-configuration-files-on-a-linux-vps

Definitely take a look at the article, but the gist of it is that you git init your entire root folder, then add all the files to .gitignore, the pull out the ones you want, the config files, then push them up to a new Github repo. Easy peezy. And, when its all done, you can rest assured that all the sweet customization you’ve done to your workflow will never be lost. Along with the above link, Ive also created a Github Gist outlining the process and highlighting which config files I backup, that can be found here: https://goo.gl/pV2Wdc

Leave a Reply

Your email address will not be published. Required fields are marked *