git reflog
отображает историю изменений указателя HEAD и веток в локальном репозитории. Это журнал операций, позволяющий восстановить потерянные коммиты или отменить неудачные действия (например, сброс ветки). В отличие от git log
, git reflog
показывает *локальную* историю, не синхронизированную с удаленным репозиторием.
Команда git reflog
используется для просмотра истории изменений указателей (refs) в вашем локальном репозитории Git. Это мощный инструмент для восстановления потерянных коммитов или для понимания того, как менялась ваша ветка разработки.
Основные функции и особенности:
git reflog
ведет запись почти всех действий, которые изменяют указатели, таких как коммиты, слияния, переключения веток, сбросы (reset) и другие операции.git reset --hard
, git reflog
предоставляет возможность найти SHA-1 хэш нужного коммита и восстановить его, создав новую ветку или выполнив git cherry-pick
.git reflog
без дополнительных параметров показывает reflog для текущей ветки. Можно указать конкретную ветку, например git reflog show master
.Пример использования:
Предположим, вы случайно откатили состояние вашей ветки feature/new-feature
с помощью git reset --hard
. Чтобы восстановить потерянные изменения, вы можете сделать следующее:
git reflog show feature/new-feature
.HEAD@{5}
).git checkout -b recovery-branch <SHA-1 хэш>
или git checkout -b recovery-branch feature/new-feature@{5}
.В заключение, git reflog
— ценный инструмент для восстановления потерянных изменений и для понимания истории вашего локального репозитория. Однако, не забывайте, что он является локальным и не синхронизируется с удаленными репозиториями.