Временно переключите рабочую копию на конкретную фиксацию Git

Как переключиться на конкретный Git commit , не потеряв все сделанные после него коммиты?

Я хочу, чтобы локальные файлы были изменены, но база данных коммитов останется нетронутой, только текущий указатель позиции установлен на текущий выбранный commit.

Я хочу изменить состояние файла на конкретный commit, запустить проект и, когда закончите, восстановить файлы до последнего фиксации.

Как сделать это, не зацикливая всю папку проекта?

Ответ 1

Если вы находитесь в определенной ветке mybranch, просто продолжайте и git checkout commit_hash. Затем вы можете вернуться в свою ветку на git checkout mybranch. Сегодня у меня была одна и та же игра, делящая по себе ошибку. Также вы должны знать о git bisect.

Ответ 2

Сначала используйте git log, чтобы увидеть журнал, выберите требуемый коммит, запишите хэш файл sha1, который используется для идентификации фиксации. Затем запустите git checkout hash. После того, как вы закончите, git checkout original_branch. Это имеет то преимущество, что не перемещает HEAD, он просто переключает рабочую копию на конкретную фиксацию.