With git you can have anything versioned. You're used to version your code, which is a bunch of files. Your server configuration (on Linux) is also just a bunch of files, so it can be versioned as well.
The idea is simple: create a git repository in
/etc/ and commit everytime you change any configuration of your server. Written in code:
git add .