Even if you're on your own branch you can easily get a DAG after rebasing or resetting. The reflog keeps track of the history of all refs (ie. branch names) that you change. After you rebase your old commits are still there! It's actually quite hard to remove commits.
Trusting the reflog is key to becoming good at git.
Rebase, branching, diff, cherry pick, merging is just manipulating a DAG.
When you're on your own branch it's often easier to think of it as a linked list.