Git is a content-addressable filesystem that stores and accesses values with keys, where the keys are SHA-1 hashes of the values. The fundamental building blocks of a Git repository are objects such as blob objects, tree objects, and commit objects. Blob objects store file contents as snapshots in the Git object database, while tree objects represent directories and their files, containing a list of files and directories with their mode, type, and SHA-1 object name. Commit objects represent snapshots of the repository at a particular point in time, storing a reference to a tree object and one or more parent commit objects. Git creates an SHA-1 hash of a tree object by concatenating its file or directory names into a single string. Commits are snapshots, not diffs, allowing Git to store the entire history of a repository efficiently without tracking changes individually.