Выбор ответа Middle Git обновлено
Восстановление после reset --hard
Вопрос
Ты сделал git reset --hard HEAD~3 и понял, что три коммита были нужны. Как их вернуть?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Найти прежний HEAD в git reflog и сделать reset на него. Коммиты после reset не удаляются сразу: на них ссылаются записи reflog, пока их не вычистит сборка мусора (по умолчанию недостижимые записи живут 30 дней). reflog показывает, куда указывал HEAD, и туда можно вернуться. - Утверждение…
Варианты ответа
- Никак: reset --hard удаляет коммиты из репозитория навсегда
git revert HEAD~3, он вернёт три отменённых коммита- Найти прежний HEAD в
git reflogи сделать reset на негоправильный ответ git stash pop, reset прячет коммиты в stash
Разбор
Коммиты после reset не удаляются сразу: на них ссылаются записи reflog, пока их не вычистит сборка мусора (по умолчанию недостижимые записи живут 30 дней). reflog показывает, куда указывал HEAD, и туда можно вернуться.
- Утверждение «навсегда» неверно, пока коммиты есть в reflog.
- revert создаст новый коммит и ничего не восстановит.
- stash хранит незакоммиченные правки, а не отброшенные коммиты.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.