jetbrains IDEs have a local history feature that seems to do this
That being said I don’t mind committing often. If I have a slew of small commits I squash them.
Since I will need to commit at some point, I rather do it incrementally.
By "diff view" I mean I can see all the changes I've done from the main branch.
I suppose I can stash my current code, reset to where I started somehow, and then unstash.
I've also toyed with the idea of having two repos on my disk.