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