Восстановить - git reset --hard HEAD^
К сожалению, я сделал несколько раз git reset --hard HEAD^
потерять довольно большой кусок кода в нескольких файлах. Есть ли способ восстановить эти коммиты или в этом случае переслать туда, где раньше была HEAD, чтобы я мог восстановить те строки, которые я потерял?
2 ответа
Используйте reflog, чтобы восстановить sha1 предыдущего HEAD. В частности, статья reflog, ваша страховка будет особенно актуальна для вас. Из этой статьи:
Наиболее распространенным использованием этой команды является то, что вы только что сделали
git reset
и переместил вашHEAD
назад несколько коммитов. Но, к сожалению, вам нужно немного кода, который вы оставили во втором коммите. Дерьмо. Что теперь?
Как только вы нашли sha1 коммита, к которому хотите вернуться, используйте что-то вроде:
git reset --hard 0a1b2c
Бежать git reset --hard HEAD@{1}
если вы только что зафиксировали свой код и хотите отменить это.
См. Раздел "Порядковые спецификации" на http://book.git-scm.com/4_git_treeishes.html