Is Git a database?
Some Friday afternoon thoughts on this perennial question which yet seems to have little good info found through Google :
-
Git is designed to store, retrieve and index trees, i.e., file-system directories, and their sub-directories and files.
-
It is designed to do this efficiently in situations where only some files between different trees are actually different.
-
It is designed so that different trees can be retrieved and restored onto the actual filesystem quickly.
-
Different trees can be sent between different git stores easily (this is the distributed part).
-
Most of everyday version control we use as
gitso often is a thin layer on top of above capabilities. -
For 99% of current git usage, old VCS systems were almost as good as git. It was designed to solve the difficult problem of many large closely related trees (namely Linux kernel source trees).
That makes Git a database… for storing filesystem trees.