Временный откат (checking out)
GUIChecking out - это процесс переключения между всеми за-commit-енными изменениями.
Можно вернуться к предыдущему commit-у чтобы просмотреть содержимое какого-нибудь файла и потом снова вернуться к последней версии файла.
Меню Repository | Visualize All Branch History открывает gitk:
Цветные кружки показывают сделанные commit-ы, а справа от них комментарии.
SHA1 ID это commit ID, который используется для отката/наката изменений.
Если теперь в Git Gui зайти в Branch | Checkout (Ctrl + O), вставить в поле Revision Expression какой-нибудь SHA1 ID и нажать Checkout то произойдет переход на эту ревизию.
Каждое изменение репозитория, вызванное добавлением изменений из локальной рабочей копии разработчиков в репозиторий, называется ревизией.
Чтобы вернуться к последним изменениям надо сделать в Git Gui:
1) Branch | Checkout
2) Выбрать Localbranch и затем master
3) Нажать кнопку Checkout
CLI
Используются команды:
git log git checkout ___commit_id___
git log показывает историю репозитория предоставляя следующую информацию: commit ID, автор, дата, и комментарий.
При указании commit ID достаточно указывать первый 5 символов вместо всех 40.
Чтобы вернуться к последним изменниям достаточно дать команду:
git checkout master
Примечание: когда вы возвращаетесь на предыдущий commit вы "парите в воздухе" потому что все изменения которые вы сделаете исчезнут при возврате к master.
Перманентный откат (reset)
Есть три типа resetting-а:- Soft
- Hard - игнорировать все изменения сделанные после commit-а
- Mixed
GUI
1) В Git Gui переходим в меню Repository | Visualize All Branch History, откроется Gitk.
2) Нажимаем правой кнопкой мыши на commit-e и выбираем Reset master branch to here.
3) В появившемся окне выбираем тип resetting-а.
4) File | Reload (Ctrl + F5) чтобы перезагрузить Gitk.
CLI
git log git reset --hard 8b4fe