In Git, a file's content is stored as a "blob"βjust the raw data, without the filename or any other info.
A "tree" is like a folder. It lists filenames and points to the SHA hash of their corresponding blobs or other trees.
A "commit" is a snapshot. It points to a tree and adds metadata like the author, date, and a message explaining the change.
This is how all Git objects connect. The commit points to the tree, and the tree points to the blobs, all linked by SHA hashes.