Directed Acyclic Graph
Git stores its snapshots, the commits, in a directed acyclic graph. In the
sense of git this means:
Commits are linked to their parent commits (directed)
A commit can not be a child of itself, directly or indirectly (acyclic)
Additionally:
A single commits can either have zero, one or two parents
But different commits can have the same parent
Only the first commit has no parent