Возврат интерактивной git rebase
После завершения ветки функций во время git rebase -i
я случайно удалил все мои коммиты. Я не совсем уверен, но я подозреваю, что вместо того, чтобы раздавить мои коммиты, я заменил всю запись сообщением о фиксации.
http://shafiulazam.com/gitbook/4_interactive_rebasing.html говорит:
Последнее полезное, что интерактивные rebase может сделать это для вас. Если вместо выбора "выбрать", 'squash' или 'edit' для фиксации line, вы просто удаляете строку, это удалит фиксацию из история.
Мой вопрос: есть ли способ отменить/отменить это?
Ответы
Ответ 1
Если вы только что сделали rebase, вы можете попробовать здесь:
git reset --hard ORIG_HEAD
as Jakub Narębski подробнее:
ORIG_HEAD
- это предыдущее состояние HEAD
, заданное командами, которые могут иметь опасное поведение, чтобы их было легко вернуть.
Теперь менее полезно, что Git имеет reflog: [email protected]{1}
примерно эквивалентен ORIG_HEAD
([email protected]{1}
всегда является последним значением HEAD
, ORIG_HEAD
является последним значением HEAD
перед опасной операцией).
Если вы выполнили некоторые операции с момента rebase, reflog все еще может помочь.
Ответ 2
Вы можете сделать "git reflog" и вернуть свой старый HEAD.