На данный вопрос уже ответили:
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}. Можно так же и бранч временный создать, чтобы поразбираться.
Комментариев нет:
Отправить комментарий