How can I achieve "Git"-like update management for Linux?

You probably should look at NixOS, which uses the Nix package manager.

NixOS is a GNU/Linux distribution that aims to improve the state of the art in system configuration management. In existing distributions, actions such as upgrades are dangerous: upgrading a package can cause other packages to break, upgrading an entire system is much less reliable than reinstalling from scratch, you can’t safely test what the results of a configuration change will be, you cannot easily undo changes to the system, and so on.


What you probably are looking for are called configuration management tools. There are several to choose from but and it's very subjective which one is best in any situation.

I personally found Puppet to be quite easy to get started with, but other popular choices are Salt and Ansible.


This is likely overkill for your question, but the easiest way to be able to revert system-level / massive changes is snapshotting:

https://en.wikipedia.org/wiki/Snapshot_%28computer_storage%29

You have not mentioned the specifics of your rig, but seeing as you are familiar with git, it wouldn't be too much of a stretch to imagine you might be interested in using a more complex file system. If you were to use a next-gen file system (ignore the click-bait-y name) you would be able to completely "rewind" your entire system with a mere command punched into your terminal. Any and all changes made would be reverted with very little delay / effort. ZFS would be your best bet and you could refer to this amazing Ars article to see if it might be something worth it for you (there are many many many other great features too):

http://arstechnica.com/information-technology/2014/02/ars-walkthrough-using-the-zfs-next-gen-filesystem-on-linux/