Я хотел очистить свой рабочий каталог от некоторых незафиксированных файлов, но случайно запустил git reset --hard
.Git commit потерял после сброса - hard. Не найден fsck, а не в reflog
Я понял, что потерял предыдущий (не нажал) фиксацию, поэтому я побежал git reset --hard ORIG_HEAD
. Это не привело меня к моей утраченной битве.
Я побежал git reflog
, но фиксации там не было. Я также побежал git fsck --lost-found
, но в списке не было никаких коммитов, только несколько несвязанных капель и деревьев.
Поскольку я не могу найти ссылку на потерянную фиксацию (кроме .git/COMMIT_EDITMSG
, которая все еще имеет соответствующее сообщение фиксации и список изменений), я не уверен, как это сделать, чтобы восстановить фиксацию.
Есть ли какой-нибудь способ вернуть потерянный результат, или я должен быть готов к всепобеждению?
Почему, по вашему мнению, у вас была git-фиксация для ваших локальных изменений? git reset не потерял бы его. Если у вас были только незафиксированные изменения, они исчезли. – fche
'git reset --hard' без аргумента commit-ish эквивалентен' git reset --hard HEAD', который не потеряет фиксации, нажал или не нажал. Он просто сбросит ваш индекс и рабочий каталог обратно до состояния последнего совершенного вами коммита, потеряв поэтапные и неустановленные (но еще не зафиксированные) изменения. «Git reset --hard ORIG_HEAD», вероятно, будет проблемой, в зависимости от того, какая именно последняя команда, которая фактически обновила ORIG_HEAD, и как давно это было, и что вы сделали между ними ... – twalberg
Спасибо, потерянная фиксация была сделана примерно за полчаса до «git reset - hard». –