восстановить - git reset --hard HEAD ^ - PullRequest
12 голосов
/ 16 июля 2010

К сожалению, я несколько раз git reset --hard HEAD^ терял довольно большой кусок кода в нескольких файлах.Есть ли способ восстановить эти коммиты или в этом случае переслать туда, где раньше была HEAD, чтобы я мог восстановить те строки, которые я потерял?

Ответы [ 2 ]

17 голосов
/ 16 июля 2010

Используйте reflog , чтобы восстановить sha1 предыдущего HEAD. В частности, статья reflog, ваша сетка безопасности будет особенно актуальна для вас. Из этой статьи:

Самым распространенным использованием этой команды является то, что вы только что сделали git reset и вернули HEAD на несколько коммитов. Но, к сожалению, вам нужно немного кода, который вы оставили во втором коммите. Дерьмо. И что теперь?

Как только вы нашли sha1 коммита, к которому хотите вернуться, используйте что-то вроде:

git reset --hard 0a1b2c
0 голосов
/ 22 декабря 2011

Запустите git reset --hard HEAD@{1}, если вы только что зафиксировали свой код и хотите отменить его.

См. Раздел «Порядковые спецификации» по адресу http://book.git -scm.com / 4_git_treeishes.html

...