Страницы

Поиск по вопросам

четверг, 14 февраля 2019 г.

как восстановить состояние после git rebase [дубликат]

На данный вопрос уже ответили: Git откатить rebase 1 ответ Предиcтория фейла:
В origin master было 10 нормальных коммитов. Понадобилось 3 коммита извлечь из истории, а потом перенести в отдельный баранч
Вот мои действия
git checkout master git branch test git rebase -i HEAD~10 //удалил 3,9 и 10 коммит (условно hash: aaaaa,bbbbb,ccccc) git push -f origin master git checkout test git rebase -i HEAD~10 //удалил 4,5,6,7,8 тоесть промежуточные
В это время мастер пошел вперед. Решив что пора вылить ветку test в origin, но что бы потом сливать ветку было проще решил подлить в нее мастер но ребейсом
git checkout test git pull --rebase origin master
Расчитывал что мои три коммита просто перетянуться вверх истории, так как предок-коммит был. Но после кучу странных конфликтов в истории отсуствует один коммит (aaaa)
Два вопроса
В чем я ошибся и почему все так сломалось? Что делать, как востановить утерянный коммит?


Ответ

Ответ для второго пункта: все просто git reflog, находим состояние проекта до пула (например 3 шага назад) и делаем git reset --hard HEAD@{3}. Можно так же и бранч временный создать, чтобы поразбираться.

Комментариев нет:

Отправить комментарий