MyTetra Share
Делитесь знаниями!
Как в Git посмотреть старый коммит, а потом вернуться обатно к самому последнему коммиту
Время создания: 26.10.2019 23:49
Текстовые метки: git, коммит, откатить, просмотр, файлы, рабочая директория, история, старый, последний, вернуться
Раздел: Компьютер - Программирование - Системы контроля версий (VCS) - Git

Иногда возникает необходимость посмотреть всю рабочую директорию в том состоянии, в котором она была на момент определенного коммита. Сделать это очень просто. Вначале надо узнать хеш коммита, например через команду git log. После чего можно переключить рабочую директорию на данный коммит:



git checkout <Хеш коммита>



Однако, перед этой командой нужно сделать две вещи.


Во-первых, нужно закоммитить все изменения, которые есть в рабочей директории, чтобы они не пропали.


Во-вторых, надо посмотреть, в какой ветке идет работа, чтобы после отката назад по истории, без проблем возвратиться в актуальное состояние. Сделать это можно командой:



git branch



Та ветка, возле которой стоит звездочка, и является текущей веткой. И именно в конец текущей ветки нужно будет вернуться после просмотра старого сотояния рабочей директории.


Вернуться в самое последнее актуальное состояние можно следующей командой:



git checkout <Имя ветки>



Данная команда переместит рабочую директорию в состояние, которое соответсвует самому последнему (а значит самому актуальному) коммиту в указанной ветке.


Внимание! В интернетах часто пишут, что для возврата к самому актуальному коммиту нужно дать команду:


git checkout HEAD


Но в данном случае такая команда не сработает! Потому что при перепрыгивании к старому коммиту с нужным хешем, указатель HEAD тоже перепрыгивает на данный коммит. И эта команда будет лишена какого-либо смысла.


Если вы забыли, где вы находитесь, всегда можно дать команду:



git status



При нахождении в состоянии старого коммита, эта команда может показывать разные неожиданные сообщения. Например:



HEAD отделён на c9f91ea8

Неотслеживаемые файлы:

(используйте «git add <файл>…», чтобы добавить в то, что будет включено в коммит)

site/.env

site/bootstrap/

site/node_modules/

site/public/

site/storage/

site/vendor/

ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте «git add», чтобы отслеживать их)



Подобное сообщение может отображаться даже в том случае, если перед переходом на старый коммит все было закоммичено, в stash (кармане) ничего не лежало, и в рабочей директории старого коммита не видно таких файлов или директорий.


Обращать внимания на них не имеет смысла: если вы ничего не меняете в рабочей директории в старом коммите, а только смотрите. После возвращения на последний актуальный коммит, эти сообщения исчезнут, и можно будет продолжить работу с Git в нормальном режиме.


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования