I try to use Drew DeVault's method [1], which is similar, but it seems much more straightforward. It uses a regular git repository in $HOME, a .gitignore file that is just a `*` so that it ignores all files and you have to force add the files that you want.
As a disclaimer I have to say I have never migrated my system to another one or even shared my config, so unforeseen problems may appear.