Итак, предыстория. Мой жесткий диск умер на машине А. Почти все мои работы были уже перенесены на GitHub, и все было на этом фронте, кроме одного хранилища. Итак, поняв это, я узнал: «Эй, круто, я на самом деле только что отправил tar-файл с последними изменениями в Guy Guyerson». Итак, я получаю файл tar, а затем делаю что-то глупое / показываю, какой я нянь с GitHub. Вместо того, чтобы клонировать репозиторий, затем добавить обновленные файлы, а затем нажать кнопку, я думаю: я должен иметь возможность просто отправить эти файлы, нет проблем. Я ввожу init, добавляю пульт, а затем нажимаю, но это не работает ... потому что слияния странные. Я знаю, что слияния плохие, поэтому я решил принудительно обновить эти файлы и нажать -f. Однако, так как это новый каталог .git, push перезаписывает все, и я теряю всю историю коммитов, и все файлы, которых не было в tarball, исчезли.

Можно ли как-то вернуться к этому, учитывая, что текущая локальная версия не имеет памяти о том, что все предыдущие коммиты были? У меня есть начало хэша, которое он перезаписал, но у пульта сейчас нет памяти об этом коммите.

Я думаю, что сбой жесткого диска, возможно, потребовал еще одну жертву, так как мое разочарование закипело, и я просто хотел отодвинуть обновления, пока они все еще были на этой старой машине.

Спасибо Зак

1 ответ1

0

Онлайн-версия GitHub хранит записи о тех старых коммитах, я просто не знал, как получить к ним доступ. Для будущих читателей: если у вас есть идентификатор фиксации, который вы случайно перезаписали, вы можете получить к нему доступ следующим образом:

https://github.com/userName/repoName/tree/commitNum

Оттуда вы можете использовать раскрывающийся список Tree/Branch для создания новой ветви из этого коммита. Затем его можно клонировать в локальный каталог, а затем можно объединить и т.д. Оттуда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .