Reading the object tree
git cat-file allows opening and reading commits/tree/blogs without any hassle. Starting with a commit hash, it is possible to find out what’s there is in the given commit, to which tree it is attached, parent, etc.
$ git rev-parse HEAD
39f40cf0d0b31b16e235f07853d74167c72c1d8b
$ git cat-file -p 39f40cf0d0b31b16e235f07853d74167c72c1d8b
tree 5ee8a97718dd4662373ea5e722b008f03b7d229e
parent 79b04c1d8b3f275c37a6f4bd0b42d35ccaf42505
author Patrick Marie <pm@mkz.me> 1726849801 +0200
committer Patrick Marie <pm@mkz.me> 1726849801 +0200
Updating scylla/scylla-operator from v1.13.0 to v1.14.0
$ git cat-file -p 5ee8a97718dd4662373ea5e722b008f03b7d229e
100644 blob e2b5b73f808c496be73f4e399090a6ae63818bf2 .drone.yml
100644 blob 55e7b6e6698a2a415ef1f4d5df92a8ec77817cc9 .gitignore
100644 blob 20f1ead4b88ab9abadb951cf2a226aecd7aa633b .golangci.yaml
100644 blob bcc630c55a74759a730809306bdedcae93a5c68c .justfile
...
Reading a blob is similar:
$ git cat-file -p e2b5b73f808c496be73f4e399090a6ae63818bf2
kind: pipeline
type: docker
name: default
trigger:
branch:
...