> You can’t merge upstream changes into your local, uncommitted modifications
No, you can't, and I'd be horrified if I ever worked in a system that did that again.
First, there's never an excuse to not commit. What you commit is not necessarily what you publish. rebase -i to clean up artifacts of the junk you've done if you're worried about it (I always do it that way).
But more importantly, when I pull code and what ends up is worse than what I had before, I'd like to go back to where I was.