Такая ситуация, что вместо merge сделал rebase. Получается изменения коряво слились, как можно откатиться к моему локальному коммиту, до того как был сделан rebase и коммит ?
Ответ
Ищите в рефлоге прошлый HEAD-коммит ветки, которую нужно восстановить к прошлому состоянию:
$ git reflog
# это просто пример, у вас будут другие id и строки
91e9b6e HEAD@{0}: rebase finished: returning to refs/heads/master
91e9b6e HEAD@{1}: rebase: checkout @{-1}
a26257f HEAD@{2}: checkout: ...
91e9b6e HEAD@{3}: commit: ...
...
Просто ищите коммит с тем сообщением, которое вам нужно. Он будет третьим в списке, если вы больше ничего не делали после ребейза.
На всякий случай сделаем бэкап
git branch backup
Потом восстановим текущую ветку к найденному коммиту. Можно использовать как id, так и указатель HEAD@{номер}
git reset --hard HEAD@{2}
Если всё прошло удачно, можно удалять бэкап
git branch -D backup
Подробнее о git reset --hard: Как вернуться (откатиться) к более раннему коммиту?
Комментариев нет:
Отправить комментарий