So far, the only plugin I've seen meeting these requirements is VersionPress. It records both changes to any file in the filesystem and tracks changes make to the database. It tracks users (and their email) for any changes made and associates them with the commit. Anything done by WordPress itself is tracked by a user called "Non-admin action". It has both the ability to revert commits and the ability to roll back to commits. It creates its own git instance (does not need to connect to GitHub but it does have the ability to do so). This plugin is still in development and is currently in the Early Release Stage. It is scheduled to be released in Q1/Q2 in 2016. After contacting them, I've been told that a pricing model has not been set up yet but this is what they said,
New pricing is not announced yet but we will very likely move to a SaaS model which will be yearly subscriptions for various services (think off-site backup). Early Access members will have a discounted upgrade path from the EAP but VersionPress itself, or at least its core, will very likely be free.
Honestly, I'm really exited for this. This will make backup larger instances of WordPress sites much easier as it will greatly reduce the size of backup storage and make versions easier to restore to and will make development ten times easier as well.
What it is, in simple terms:
VersionPress keeps historic revisions of everything in a site. It is the undo button for WordPress, allowing you to roll back to any previous state of the site.
But it is even better than your common undo button in a text editor /
word processor. You can selectively undo past changes, keeping the
newer ones, do painless synchronizations between multiple instances of
your site, organize team work, etc.
For nerds / devs:
VersionPress brings the power of Git to WordPress. We version-control both files and the database, in a clever
way that is friendly to diffing / merging.
The point is that you can manage your WordPress site in a same way as
you do your other software projects. WordPress site is a software
project after all and, in our opinion, deserves the same tools &
workflows that the rest of the world enjoys.
AUTOMATIC CHANGE TRACKING - VersionPress creates new version every time something changes on the site, be it new post, plugin update,
theme customization or just about anything. It tracks both files and
the database which makes it very powerful.
UNDO AND ROLLBACK - Returning back to a previous state of the site is as simple as clicking a link in the admin screen. There are two
options – either roll back to a previous state or just undo some
specific change(s) from the history.
SELECTIVE UNDO - One of the nicest features: you can selectively undo a change without affecting newer updates. For instance, you can
return to a previous theme while maintaining newer content updates.
EASY STAGING - Staging is crucial for reliable updates but has been traditionally difficult to set up and work with. VersionPress makes it
painless. It also facilitates team workflows as it can synchronize
mutlitple clones of a site.
GREAT FOR BACKUP - VersionPress is extremely space-efficient. A site with hundreds of updates will still usually take just a few MB.
Another great thing is granularity as new "backups" are created after
every logical change, not at a fixed time.
ANY TOOLS & WORKFLOWS - No matter how you manage your site, whether through admin screens, WP-CLI or by manually editing the files in an
external tool, VersionPress supports that. Any Git client can be used
to work with VersionPress' repository.
SHIPS AS A PLUGIN - Sounds trivial but is actually a big achievement and tribute to WordPress' extensibility. VersionPress is one of the
most complex plugins out there.
WORKS BEHIND THE SCENES - You can install and forget VersionPress, it will do its work silently behind the scenes. It will be there when
you need it.
SOLID INTERNALS - Git is one of the best version control systems out there and we're proud to bring its power to WordPress.