Git is a distributed version control system designed to track changes in source code with speed, data integrity, and support for distributed, non-linear workflows.
Git tracks changes in a repository using a content-addressable object database (blobs, trees, commits, and tags) alongside a reference storage backend that maps human-readable branch names, tags, and HEAD to object IDs.
Historically, Git stored references as individual loose files under .git/refs/ and consolidated them into a .git/packed-refs file. Newer Git versions introduce alternative reference storage mechanisms: