It is a directed acyclic graph where each node is a version of the content and edges represents the change (diffs)
Each node has an identifier which is the results of hashing the content.
Merkle DAG nodes are immutable and content-addressable. Any changes in the node would alter its identifier thus affect all ascendants, which create a different DAG.
Examples of the DAG in action: