Как мне восстановить файл после git rm и отправки в github?
Недавно я клонировал репозиторий на своем локальном компьютере, а затем удалил git на одном из файлов и перенес эти изменения обратно в репозиторий github. У меня вопрос, как мне восстановить этот файл обратно в исходный репозиторий github?
2 ответа
Если вы можете найти предыдущий коммит abcd
который имеет удаленный файл, то вы можете использовать
git checkout abcd файл для восстановления
восстановить его. Вам нужно будет зафиксировать файл снова.
Предположим, файл undelete.sh был удален случайно.
Затем получите хеш коммита, в котором этот файл удален:
git rev-list -n 1 HEAD -- undelete.sh
Что дает вам хеш удаления:
ae85c23372a8a45b788ed857800b3b424b1c15f8
Теперь вы можете проверить версию файла перед удалением:
git checkout ae85c23372a8a45b788ed857800b3b424b1c15f8^ -- undelete.sh
И вы должны вернуть файл. Вы можете добавить, зафиксировать и отправить его в репозиторий.
(источник)
Другие решения у меня не сработали. Вот как я это сделал.
Вот как я получаю хеш фиксации. (Скопировано сверху)
git rev-list -n 1 HEAD -- src/main/java/runner/Main.java
который дал мне
6009ff608bc580cf38baf5fa67e232c8bd20c5a7
И вот как я его восстановил.
git checkout 6009ff608bc580cf38baf5fa67e232c8bd20c5a7~1 src/main/java/runner/Main.java
1. Если удаленный файл находится в вашем .gitignore
, то вы можете удалить его в .gitignore
а также git add
это снова.
2.Вы можете просто использовать git reset 'commit id contains your deleted file'
затем объедините и нажмите еще раз.
Вы должны использовать git reset HEAD~
а затем используйте git checkout -- <filename>
для восстановления удаленных файлов.