Он находит физическую копию или же у него есть инструкция, по которой он возвращает файл в нужное состояние с нужным содержимым при помощи хэша?
простое хранилище ключ-значение
. Подробности: раз, два. .git
лежат (в сжатом виде) копии всех файлов по всей истории и когда вы переключаете коммиты git просто перезаписывает файлы из нужной копии.