Страницы

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

понедельник, 6 января 2020 г.

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

#git


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Git откатить rebase [дубликат]
                                
                                    (2 ответа)
                                
                        
                                Закрыт 3 года назад.
            
                    
Преди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)

Два вопроса


В чем я ошибся и почему все так сломалось?
Что делать, как востановить утерянный коммит?

    


Ответы

Ответ 1



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

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

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