Восстановить список коммитов после отмены интерактивной перебазировки в git?
Моя ситуация: есть два пульта, origin
а также fork
(последний принадлежит мне). Я проверил origin/devel
, изменил некоторый код и зафиксировал как 5x в мою локальную ветку test
, Я подтолкнул свои коммиты к fork/test
,
Затем я начал интерактивную перебазирование, в то время как на моем местном test
ветка:
git rebase -i --onto origin/devel
Git открыл редактор со списком моих 5 коммитов, готовых выбрать, сквош или что-то еще.
Я случайно закрыл редактор вместо удаления всего или Ctrl+C и git rebase --abort
в консоли git. Таким образом, начался ребаз.
Чтобы отменить это, я использовал git reflog
а также git reset --hard HEAD@{...}
а также git checkout fork/test -B test
позже, так как мой пульт также должен содержать состояние предварительной ребазировки. Кажется, что все они восстанавливают состояние, но если я снова начну перебазирование, в списке не будет коммитов (только noop
запись).
Как восстановить исходное состояние перед перебазированием, чтобы снова отобразился исходный список фиксации?
Отмена мерзавца git не покрывает эту проблему. Меня в основном интересует, почему это происходит и как действительно отменить ребаз, а не как изменить rebase
команда, чтобы получить список фиксации снова (как я уже сказал, git reset
а также git checkout
НЕ отменил это должным образом с моей точки зрения).
Конечная цель состоит в том, чтобы перебазировать мой test
перейти на современную origin/devel
в более поздний момент, раздавив все мои коммиты, так как test
отклонился от origin/devel
,
//edit: похоже, что Git забыл точку ветвления. git merge-base --fork-point origin/devel
возвращает origin/devel
совершить, прежде чем мои собственные коммиты, однако, и git rebase -i that-commit
дает мне начальный список коммитов. Так почему же --onto
больше не делать то же самое?