Я закоммитил файл в свой локальный Git, а затем отправил его на GitHub.
Я выполнил следующие команды, чтобы удалить этот файл, а затем отправил его на github:
git rm file.txt
git commit -m remove file.txt
git push -u github master
Затем я понял, что хочу вернуть файл. Я попробовал инструкции, изложенные здесь: https://www.quora.com/Как-мне-восстановить-файл-удаленный-из-локального-репозитория-из-удалённого-репозитория-в-Git
Я выполнил следующую команду:
git rev-list -n 1 HEAD -- file.txt
что дало мне хэш для версии, в которой был мой файл: HASH. Который я затем использовал в следующей команде:
git checkout HASH^ file.txt
Что затем выдало мне следующую ошибку:
error: pathspec 'file.txt' did not match any file(s) known to git
К счастью, мне удалось зайти на GitHub и восстановить все свои файлы оттуда, но я до сих пор не знаю, как это сделать локально, и возможно ли это вообще.
решение1
Используйте git reflog
для получения хеша коммита для точки, в которой был ваш файл. Затем используйте git checkout <hash>
для возврата к этому хешу коммита.
В качестве альтернативы вы можете использовать , git checkout HEAD{1}
чтобы вернуться на один коммит назад.