Como redefinir a árvore de trabalho sem mover HEAD?

Dado um ramo git com algumas confirmações (C é a confirmação mais recente):

A -> B -> C

Como redefinir meu espaço de trabalho para que todos os arquivos estejam no estado em que estavam no commit B, mas o HEAD ainda está em C?

Eu olheigit-reset, mas nenhuma das opções parece ajudar. A página do manual sugere que todos os modos diferentes serão movidos HEAD:

--soft
   Does not touch the index file or the working tree at all 
   (but resets the head to <commit>, just like all modes do).

eu tenteigit reset HEAD~ mas isso move HEAD.

questionAnswers(3)

yourAnswerToTheQuestion