Как мне отменить 'git update-ref -d refs /head / master'? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытался повторить ветку фильтра git, которая оставила последнее сообщение, говорящее refs/heads/master is unchanged. Я читал, что это потому, что резервная копия уже существует, поэтому мне пришлось от нее избавиться. Итак, я запустил git update-ref -d refs/heads/master, и теперь больше нет коммитов, и я не могу отменить это. Какие-либо предложения?

1 Ответ

0 голосов
/ 27 апреля 2018

Мне удалось это исправить, прочитав этот вопрос о переполнении стека и следующую ссылку в комментарии: Восстановление репозитория Git только из объектов .

  1. используйте git fsck, чтобы найти список висячих хэшей коммитов

  2. vim в ваш .git/refs/heads/master, который является просто текстовым файлом, и введите предполагаемый хеш, который представляет ваш последний коммит для master.

  3. сохраните и вернитесь в корневой каталог, чтобы проверить журнал git, чтобы увидеть, является ли он вашим последним. Если нет, то систематически просматривайте хэши, начиная с шага 1, пока не найдете его.

  4. после его обнаружения git checkout ., поэтому git возвращается к исходному состоянию главной ветви

...