Ответ 1
Сначала создайте архив вашей рабочей папки git. Это упрощает попытку несколько раз.
Предположим, что произошло следующее:
- git checkout other-old-branch
- git мастер переустановки
- некоторые проблемы (которые вы пропустили)
в этот момент вы все еще находитесь в ветке другого старого типа, и ваш рефлог показывает вам:
6f8348f [email protected]{0}: rebase: <commit message of last commit in another-old-branch>
e547ec0 [email protected]{1}: checkout: moving from another-old-branch to e547ec0d2a558d189464fc57192066b34ec5f28f^0
65cedf8 [email protected]{2}: checkout: moving from master to another-old-branch
Представьте, что ветки похожи на символические ссылки (или указатели), все, что нам нужно сделать, это позволить ветке "другая-старая ветвь" вернуться к старому идентификатору commit. старый фиксатор все еще существует, и он не был затронут вашей rebase. kinda: 'hey git, другая-ветвь-ветвь e547ec0d2, забудьте все, что произошло "
В нашем случае здесь было e547ec0d2a558d189464fc57192066b34ec5f28f, поэтому теперь нам нужно сделать
- git checkout another-old-branch #, если вы еще не там
- git reset --hard e547ec0d2a558d189464fc57192066b34ec5f28f
теперь ваша ветка возвращается в нормальное состояние. И вы можете повторить свою перезагрузку.
Обратите внимание, что ваш рефлок уже немного сложнее, чем пример с отменой. но он должен быть где-то там...
Удачи!