I right clicked on the latest, selected reset branch to this commit, and choose the "soft, keep all local changes" option.
I've lost some things, but it kept other things.
So what exactly does a soft reset to commit do?
A soft reset (examples here) should only move Git branch HEAD, without touching anything else (not the index, not the working tree).
That means nothing should be "lost"
There is the Microsoft/vscode
issue 32459 which mentions:
As an author of git tooling, the fact that git clean is invoked when the intention is to discard changes only is indeed surprising. As mentioned before, the meaning of change within git is clear, and does not include untracked files.
It seems to me that the whole issue stems from introducing new terminology on top of git - this operation should use wording analog to 'hard reset' and 'soft reset'.
Maybe in your case, a git clean
was performed, and untracked files were... cleaned (deleted).