Using git versioning to keep track of your UNIX settings in `/etc/`
Simple idea: Using git's versioning and remote capabilities to keep track of your settings in
- you can view diffs on settings
- revert settings / states
- cherry pick different configuration states
- using branches to test configurations und environments
- using remote repositories to sync and merge settings
- manage (remote) backups
The following steps require root privileges.
First we need to init a git repository:
$ cd /ect/ $ git init .
Optional: add a
.gitgnore to exclude specific and temporarily files and folders:
*~ # temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* # KDE directory preferences .directory # Linux trash folder which might appear on any partition or disk .Trash-*
We add all files and create a first commit:
$ git add --all . $ git commit -am "initial commit"
An easy way to ensure that we add regular commits is to create a cronjob with:
$ crontab -e
0 6 * * * cd /etc/ && git add --all . && git commit -am "automatic commit on $(date)"
Remote backups can easily be done by
git push --all origin master.
If you prefer additional software tools helping you, try out etckeeper (thank to Pedro for the hint).