Восстановить - 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

Другие вопросы по тегам