A blob is just the contents of a file. By default, every new version of a file gets a new blob, which is a snapshot of the file (not a delta like many other versioning systems).
A tree is a list of references to blobs and trees.
A commit is a reference to a tree, a reference to parent commit(s) and some decoration (message, author).
A commit is defined by tree, parent, author, committer, comment
Here you can notice we have two parents because of a merge request
You can further see the content, size, type of repository #gitobjects like:
Hopefully, this blog would help you in understanding the git inside out and helps in troubleshooting things related to git.