Перемещение по истории
Git позволяет не только просматривать историю. Еще мы можем перемещаться по истории, загружая в рабочую директорию состояние кода на момент выполнения любого коммита. В этом уроке мы изучим, как перемещаться по истории с помощью команды git checkout
.
Для начала воспользуемся командой git log
:
Переключимся на момент, когда был выполнен коммит с сообщением add INFO.md. Для этого используем команду git checkout <хеш коммита>
:
Выполните команду выше и изучите рабочую директорию. Обратите внимание, что хеш вашего коммита может отличаться. Вы увидите, что пропала часть изменений из-за возврата в прошлое. Сами изменения никуда не делись, и мы снова можем вернуться на последний коммит следующей командой:
Переключившись в нужный коммит, можно не только изучить содержимое репозитория. Еще мы можем забрать какие-то изменения, которые были удалены, но снова понадобились для работы. Для этого достаточно их скопировать, переключиться на последний коммит и вставить в нужный файл.
Команда git branch
Переключение по коммитам отражается только на содержимом рабочей директории. Больше нигде не видно, где мы находимся. Из-за этого немало программистов забывают, где они находятся. Они начинают работать и очень удивляются, когда не получается выполнить коммит.
Самый простой способ узнать место нахождения — вызвать команду git branch
. В обычной ситуации, когда мы находимся на последнем коммите, Git покажет такой вывод:
Но если прямо сейчас загружен коммит из прошлого, то вывод станет таким:
Такой способ проверки текущего местоположения требует постоянного внимания. Нужно не забывать его использовать. Конечно же, все забывают это делать, поэтому гораздо надежнее и удобнее вывести текущее местоположение прямо в командной строке. Например, так:
Именно так делают большинство профессиональных разработчиков. Как добиться такого вывода? Ответ на этот вопрос зависит от используемого командного интерпретатора:
В Bash вывод местоположения происходит благодаря редактированию переменной окружения $PS1
, подробнее об этом вы можете почитать по ссылке в дополнительных материалах.
Самостоятельная работа
Выполните все команды из урока
Настройте вывод текущего места в вашем терминале