A different approach to file history Git handles 4 different types of objects Files (called «blobs») Directories (called «trees») Commits («commits») Tags («tags») All objects are immutable Each object is identified by its own hash Git stores objects in a directory «objects», according to their hashes An object may include hashes that link other objects The status and complete history of a file-set is identified by the final commit in such history Every commit is represented by its SHA1 hash If two users own the same commit they automatically own the same files To authenticate a file-set and history you just sign the hash