I'm not sure how I managed to get into this state(*), but I've got some commits in my tfs/default remote branch that don't exist in TFS, so I want to get rid of them. So my history looks like this:
A--B--C--D tfs/default
... but commits B and C aren't actually changesets in TFS. As a result, when I checkout tfs/default I am out of sync with TFS because of commits B and C. Not good.
I figured I could fix it if I could somehow reset the tfs/default remote to A and do another "git tfs fetch" to end up with the actual history:
A--D tfs/default
but I'm not sure how to do that?
*) If it makes any difference, I think it involved using "git tfs shelve" on B and C, maybe followed by some commits and a "git tfs pull". But I'm not sure.