Link to a tutorial about versioning your settings with Git
Why to version your settings? Because they broke, are complex and sometimes you do not know where the bug is.
Why git? Could handle merge conflicts the best way among all version systems as far as I know.
- Why GitHub or Bitbucket(my case-free private repos)?
Because you can get your settings and update it among different workstations.
How to link different settings of your file system? Finally link to the tutorial.
Remark: I do include into the config repository only the most important files. For example Eclipse contains all settings in one directory ($HOME/.eclipse for standard installation), so I take advantage of that and create classical git repository there.