Overview
A branch switch can be blocked when uncommitted work would be overwritten. The poor alternatives are to discard the work or create a premature commit that does not represent a finished unit.
Stash provides a third option: preserve the current work outside the working directory, handle the interruption, and resume later.
It separates task switching from project history. The unfinished state is held temporarily rather than presented as a completed commit.