title: DAG vs. tree using Git?
body: <p>I've often read that Git uses the <a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph" rel="noreferrer">directed acyclic graph</a> (DAG) data structure, with each commit as a node, and things like branches and tags as pointers to nodes.</p>
  
  <p>But when I try to visualize my commit history using tools like gitk, it looks more like a tree than a graph since every parent-child relationship is directed one way.</p>
  
  <p>So, what's the difference between a DAG and a tree, specifically with regards to Git?</p>