## Solutions - Create a directory, eg `/etc/config` and store all of your config files there, then use a makefile to automatically generate symlinks and install them in the appropriate locations. A command is also created for removing said symlinks. (https://forums.freebsd.org/threads/version-control-for-configuration-files.70312/) - I like this so far, it seems like one of the better options. - Using a filesystem that supports snapshots like zfs/btrfs and then creating snapshots (https://forums.FreeBSD.org/threads/version-control-for-configuration-files.70312/post-423330). - I don't like this very much, it depends too much on OS specific configuration and doesn't seem like it'd be as easily portable between machines. - Using a configuration management system like Ansible, Chef, or Puppet () - I feel like this would require a fair bit of initial setup but it seems robust - Using a database like ## Notes I think one major issue with storing configs in a solution like git, is that you need to remember to push changes after every single config change. Maybe a cronjob could be configured to commit daily/weekly?