Подтвердить что ты не робот

Lost Last Git Commit

Я потерял последнее коммит, потому что случайно запустил "git reset --hard HEAD ^". Примечание: я не хотел вставлять "^" в конец.

Есть ли способ вернуть его? Это было 2 дня работы: (

4b9b3361

Ответ 1

Я думаю, что эта статья - это то, что вы ищете. Согласно статье, ваша фиксация "ушла", но не сбор мусора - вроде как корзина в Windows.

Вы запускаете git fsck --lost-found, чтобы найти "оборванную фиксацию", и посмотрите на нее с помощью git reflog, затем слейте оборванное сообщение с вашей текущей ветвью, git merge 7c61179.

Ответ 2

git позволяет очень легко вернуться к предыдущему состоянию и очень сложно работать, чтобы вы не потеряли данные, которые вы совершили. Это причина, по которой вы должны совершать часто. У меня есть команда git trash, которая делает это состояние git reset --hard, но после написания фиксации, чтобы я мог отменить жесткий reset, если мне нужно.

Для последнего состояния (т.е. вашего точного случая) просто git reset --hard ORIG_HEAD, чтобы отменить то, что вы только что сделали.

Вы можете сделать временный reset: git reset --hard '@{5 minutes ago}', чтобы поставить себя в предыдущее состояние на основе времени (есть много вариантов, которые вы можете использовать, например, git reset --hard '@{yesterday}' притворяться сегодня не случалось).

В противном случае просмотрите вывод git reflog, чтобы найти вещь до того, как вы почувствуете, что вы оказались в плохом состоянии и reset.

Ответ 3

Если вы знаете идентификатор фиксации (например, прокрутите назад свой терминал или используйте git reflog),

git reset --hard 61567de5d9

Где 61567de5d9 - первые цифры последнего (потерянного) фиксации.