Why does Git's stash commit need two parents? In the Hacker's Guide to Git, I see this mental model for stashes:The guide tells me that stash@{0} needs both A and B as parents.  Why? Why doesn't the stash just point to B, getting rid of the need for C?  I think I am missing something in my Git comprehension.
Why does Git's stash commit need two parents?
git;concepts
Because two things are stashed: the indexed content and the worktree content.  Both are derived from the checked-out commit.  When popping the stash, both can be restored.