Вышеприведенный ответ не совсем корректен - git revert <ID> не устанавливает ваш репозиторий на этот коммит - git revert <ID> создает новый коммит, который отменяет изменения, внесенные коммитом <ID> . Это более или менее способ «отменить» коммит и сохранить его в своей истории как новый коммит.
Если вы хотите установить в своей ветке состояние определенного коммита (как подразумевается в OP), вы можете использовать git reset <commit> или git reset --hard <commit> . Первый параметр обновляет только INDEX, оставляя файлы в вашем рабочем каталоге без изменений, как будто вы внесли изменения, но еще не зафиксировали их. С параметром --hard он заменяет содержимое вашего рабочего каталога тем, что было на <commit> .
Замечание о том, что git reset изменит историю - если я сделал несколько коммитов, а затем перешел на первый коммит, последующие коммиты больше не будут в истории коммитов. Это может вызвать некоторые серьезные головные боли, если какой-либо из этих потерянных коммитов был перенесен в публичный репозиторий. Убедитесь, что вы используете его только для того, чтобы избавиться от коммитов, которые не были перенесены в другой репозиторий!