Просмотр "истории отмены"
В качестве разработчика вы, возможно, захотите отменить изменения, внесенные в свою кодовую базу. Git предоставляет несколько способов отменить изменения, например, с использованием команд git reset
или git revert
. Однако может быть трудно отслеживать все действия, которые вы предприняли, особенно если вы использовали более продвинутые команды, такие как git rebase
. Именно здесь команда git reflog
пригодится.
Команда git reflog
отображает журнал ссылок Git, который является записью всех действий, предпринятых вами в репозитории. Это включает не только коммиты, но и другие действия, такие как слияния ветвей, ребейсы и сбросы. Просмотрев журнал ссылок, вы можете увидеть полную историю всех изменений, внесенных вами в репозиторий, даже если они не отображаются в истории коммитов.
Для просмотра "истории отмены" в Git вы можете использовать команду git reflog
. Предположим, что вы внесли некоторые изменения в репозиторий и хотите их отменить.
- Перейдите в репозиторий с помощью командной строки:
cd git-playground
- Теперь предположим, что вы поняли, что допустили ошибку и хотите отменить последний коммит. Вы можете использовать команду
git reset
для этого:
git reset HEAD~1
- После выполнения этой команды вы, возможно, поняли, что допустили еще одну ошибку и хотите отменить сброс. Именно здесь команда
git reflog
пригодится. Вы можете использовать ее для просмотра журнала ссылок и поиска хеша коммита предыдущего коммита:
git reflog
Это выведет список всех действий, предпринятых вами в репозитории, включая сброс:
cf80005 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~1
d22f46b (origin/master, origin/feature-branch, origin/HEAD) HEAD@{1}: clone: from https://github.com/labex-labs/git-playground.git
- Из этого вывода вы можете увидеть, что хеш предыдущего коммита равен
d22f46b
. Вы можете использовать этот хеш для сброса репозитория назад к предыдущему коммиту:
git reset d22f46b
- Просмотрите исторические записи коммитов, чтобы проверить результаты:
git log