Git stores content in objects that are immutable and identified by cryptographic hashes. The main objects are blobs for file contents, trees for directories and their contents, and commits for snapshots of the repository state. Commits form a linked history and reference previous commits. Branches and tags in Git reference commit objects and allow moving between commit snapshots.