Как я могу восстановить файлы перед определенной фиксацией в GitHub?
Если вы хотите получить отдельный файл, например, перед фиксацией f4l4fe1, вы можете сделать:
f4l4fe1
git checkout f4l4fe1^ -- some/file.txt
(Когда вы добавляете ^ к ссылке в git, это означает, что родитель этого коммита.) Вы должны найти some/file.txt в вашем рабочем дереве, но учтите, что он также будет инсталлирован как изменение совершить.
^
some/file.txt
Если вы хотите просто увидеть рабочее дерево, как оно было при предыдущем коммите, вы можете проверить коммит, как если бы это была ветвь:
git checkout f4l4fe1^
Это ставит вас в состояние, известное как «отсоединенный ГОЛОВ», когда вы больше не находитесь в определенной ветке, поэтому создание новых коммитов не продвинет ни одну ветку. Чтобы вернуться к master, скажем, вы просто сделаете git checkout master.
master
git checkout master
В качестве третьего варианта, предположим, что вы хотите извлечь из этого коммита целый каталог или целый подкаталог, вы можете использовать git archive и направить вывод в tar, как описано в: Какой лучший способ извлечь дерево из репозитория git?
git archive
tar