Я вытащил код из своего репо, который перепутал ситуацию. Я хотел бы вернуть весь мой проект до последнего локального коммита. Как мне это сделать?
Восстановить локальную фиксацию?
Ответ 1
Это будет reset все для вашей текущей фиксации (избавление от всех изменений, поэтапное или иное:
git reset HEAD --hard
Это будет reset все для предыдущего фиксации (также избавление от всех изменений, поэтапное или иное)
git reset HEAD^ --hard
the ^ рядом с HEAD означает фиксацию один до HEAD, HEAD - это место, где вы сейчас находитесь. Вы можете вернуть два коммита, используя ^^, или три с ^^^. Кроме того, вы можете использовать тильду, чтобы указать количество коммитов: ~ 3 для трех коммитов назад.
git reset HEAD~3 --hard
Также имейте в виду, что опция --hard означает, что эти команды отбросят любые изменения, которые у вас есть, которые не спрятаны.
Ответ 2
Найдите свой последний локальный коммит в git log
и запустите git reset --hard <commit sha1>
.
Он удалит все локальные изменения, которые вы не совершили, и переместите HEAD на это сообщение.
Ответ 3
git pull
может извлекать и объединять несколько коммитов. Чтобы вернуться в предыдущее локальное состояние (а не обратно n-commits), вы можете использовать reflog. git reset --hard @{1}