Этот сценарий возникает, когда вы - или силы более сильные, чем вы - испортили файл в своем локальном репо, и вы просто хотите восстановить новую копию последней его версии из репо. Простое удаление файла с помощью / bin / rm (не git rm) или его переименование / скрытие и затем выдача git pull
не сработает: git замечает отсутствие файла и предполагает, что вы, вероятно, хотите, чтобы он удалился из репозитория ( git diff
будут показаны все строки, удаленные из репозитория). отсутствующий файл).
git pull
отсутствие восстановления локально отсутствующих файлов всегда расстраивало меня по поводу git, возможно, потому что на меня повлияли другие системы контроля версий (например, обновление svn, которое, как я полагаю , восстановит файлы, которые были локально скрыты).
git reset --hard HEAD
- альтернативный способ восстановить интересующий файл, поскольку он отбрасывает все незафиксированные изменения, которые у вас есть. Однако, как здесь отмечено , git reset - это потенциально опасная команда, если у вас есть какие-либо другие незафиксированные изменения, которые вас волнуют.
git fetch ... git checkout
Стратегия уже отмечалось выше по @chrismillah хороший хирургический способ восстановить файл в вопросе.