Along the lines of detect differences between tree structures, I'm wondering if there are any general techniques or tools (e.g. the techniques behind the tools) that can essentially do what Git does but for graph structures. So after a few changes to the graph, you do a "commit", it creates a new hash of the contents, etc. Does basically what Git does. However, there are no files, no directory trees, and everything, instead of being big blob files, are structured graph database records, with perhaps fields or attributes that are strings/blobs (but the "contents" that are being version controlled are mainly graph nodes connected by edges). Wondering if such a thing exists, and what it would be called, or some potential papers/projects to check out to see how it is implemented.
I'm searching for "git for graph databases", but I don't actually want to apply the git protocol/algorithm to graph databases (like a DB dump into a text file, which Git is familiar with). I would like to have some sort of version control architecture for graph databases, which has commits/checkpoints. "Graph database version control" doesn't get at it either, that returns a lot of traditional "here is how to version your database records" sort of stuff, with very basic versioning on attributes (unlike the complex versioning system of Git). Not really sure what it would look like to have Git-like versioning on a graph, which is the reason for the question.
I am mostly interested in the theories around how this might be done, but knowing of a practical implementation would be helpful too!