Не удалось восстановить Git

Я сделал несколько коммитов (commit1/2/3), я изменил свой рабочий каталог без сохранения. Затем я хотел вернуться на несколько коммитов назад. Итак, я git revert commit1 commit2 commit3, но мне сказали зафиксировать мои изменения (commit4), поэтому я это сделал, а затем снова сделал git revert commit1 commit2 commit3 commit4, но у меня было сообщение

ошибка: вишневый выбор или возврат уже выполняется подсказка: попробуйте git вишневый выбор (--continue | --quit | --abort)

Когда я запускаю git branch -va, HEAD указывает на коммит 3.

Я не совсем понимаю, что происходит. Что мне теперь делать, чтобы все повернулось?


person epsilones    schedule 18.12.2012    source источник
comment
Я так ненавижу git.   -  person fool4jesus    schedule 18.10.2018


Ответы (1)


Лучше всего инициировать откат с чистым индексом и рабочим деревом.
В противном случае выполнение второго отката (поверх новой фиксации) во время предыдущего отката приведет к этому сообщению об ошибке.

Поскольку вы все еще находитесь в commit 3, вы можете:

  • git cherry-pick --quit (который из этой темы говорит revert покинуть HEAD в одиночку и уйти с дороги.)
  • проверьте свой индекс и рабочее дерево (статус git),
  • внесите любые изменения, чтобы получить чистый статус (например, новый коммит),
  • а затем повторите свой git revert.

(вы можете увидеть другие варианты в "Откат к предыдущей фиксации - Github для MAC (возврат уже выполняется)")

Не забудьте git reset, если вы просто хотите забыть об этих трех коммитах. (хотя это заставит вас принудительно нажать: git push --force, чтобы опубликовать свою историю для этой ветки. Если другие соавторы уже вытащили из той же ветки, ваш подход с использованием git revert лучше)

person VonC    schedule 19.12.2012