Nearly every company uses them to prove the authenticity of deployments in production at one or more layers.
This structure is used inside your .git directory, your docker manifest, etc.
Blockchains are incredibly useful structures.
Merkle trees are helpful for quickly validating the integrity of a chunked file. Both IPFS and BitTorrent use merkle trees to validate files.
I do not understand how git could represent its history using a merkle tree.
each parent commit in turn contains their own parents etc, until you reach an initial commit
the funny thing here is that parent commits don't have references to children, it's children that have references to parents (like the union find data structure) so the relationship here is inverted. that's because git objects are immutable