Git stores data in a distributed, non-linear way using cryptographic hashes of content. It uses 3 main object types - commits, trees and blobs. Commits reference trees, trees reference blobs, and blobs contain file contents. These objects are stored uniquely in a key-value store based on their SHA-1 hash, with links between objects allowing reconstruction of project history. This architecture provides efficient storage, versioning and recovery of data.