git восстановить удаленный файл, где не было сделано фиксации после удаления
Я удалил некоторые файлы.
я еще не совершал.
Я хочу сбросить свое рабочее пространство для восстановления файлов.
Я git checkout ..
но удаленные файлы по-прежнему отсутствует.
и git status показывает:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: cc.properties
# deleted: store/README
# deleted: store/cc.properties
#
почему бы и нет git checkout . сбросить рабочее пространство в HEAD?
20 ответов:
выход говорит вам, что нужно делать.
git reset HEAD cc.propertiesetc.это будет unstage операции rm. После этого запускаем
git statusеще раз скажу вам, что вам нужно сделатьgit checkout -- cc.propertiesчтобы получить файл обратно.обновление: У меня есть это в моем конфигурационном файле
$ git config alias.unstage reset HEADкоторый я обычно использую для unstage вещи.
вы устроили удаление, поэтому вам нужно сделать:
git checkout HEAD cc.properties store/README store/cc.properties
git checkout .только проверяет из индекса, где удаление уже было выполнено.
восстановить все unstaged удаление сразу, автоматически, без указания каждого один путь:
git ls-files -d | xargs git checkout --восстановить все поставил удаление сразу, автоматически, без указания каждого один путь:
git status | grep 'deleted:' | awk '{print }' | xargs git checkout --
Так как вы делаете
git checkout ., похоже, вы пытаетесь восстановить свою ветвь обратно в последнее состояние фиксации.вы можете достичь этого с помощью
git reset HEAD --hardпредупреждение
Это может привести к удалению всех ваших последних модификаций и unstage ваших модификаций, например, вы можете потерять работу. Это мая быть то, что вы хотите, но проверить документы чтобы убедиться в этом.
Если вы используете
git rm filenameчтобы удалить файл, то
git checkout path/to/filenameне работает, так что в этом случае
git checkout HEAD^ path/to/filenameдолжно работать
вот команда, которая помогла мне на моем mac. Я попробовал несколько других решений, но они не работали для меня.
версия Git на OSX Mavericks
mac-pro:main chris$ git version git version 1.8.5.2 (Apple Git-48)команда
git checkout HEAD -- path/to/file/file.cc
Если вы хотите восстановить все файлы сразу
Не забудьте использовать период, потому что он говорит git, чтобы захватить все файлы.
эта команда сбросит головку и отменит все изменения:
$ git reset HEAD .затем выполните это, чтобы восстановить все файлы:
$ git checkout .затем, делая статус git, вы получите:
$ git status On branch master Your branch is up-to-date with 'origin/master'.
вы можете посмотреть этой
это касается случаев, когда вы использовали
git checkout -- .прежде чем что-то совершить.
вы также можете избавиться от созданных файлов, которые еще не были созданы. А вы их не хотите. С :
git reset -- .
нашел это сообщение, ища ответы о том, как удалить файл, который был удален в моем рабочем каталоге после слияния из другой ветви. После слияния коммит еще не был сделан. Поскольку это было слияние в процессе, я не мог просто добавить его обратно, используя:
$ git reset <commitid#-where-file.cpp-existed> file.cppмне пришлось сделать еще один шаг в дополнение к сбросу, чтобы вернуть файл:
$ git checkout -- file.cpp
использовать
git ls-filesдля проверки удаленных(-d) или измененных (- m) файлов.git checkout $(git ls-files -d)посмотреть как я могу восстановить только измененные файлы на git checkout?
Если вы не совершили никаких изменений, все, что вам нужно сделать, это спрятать эти изменения, и вы вернетесь к последней рабочей фиксации.
git stash git stash clear git clean
Если вы установили ToroiseGIT, то просто выберите " Revert..."пункт меню для всплывающего меню родительской папки.
для меня то, что работал
git checkout {SHA1 of commit with version to restore} "{path to file to restore}"git checkout 5a6b3179e58edff9c90326b9a04284b02fd67bd0 "src-ui/views/includes/radar.pug"(выполняется в ветке, в которую мы хотим поместить файл)
после выполнения этой команды восстановленный файл будет существовать в исходном местоположении (которое необходимо будет выполнить)
У меня была та же проблема, однако ни одно из решений работал для меня. В итоге я сделал следующее:
- создайте пустой файл с тем же именем
- сравните этот файл с его историей
- скопируйте историю в пустой файл.
Я также удалил все мои файлы и восстановить с помощью следующей команды:
$ git config alias.unstage $ git checkout HEAD^ *
1.Найдите тот конкретный коммит, к которому вы хотите вернуться, используя:
git log This command will give you a list of commits done by you .2.Вернитесь к этой фиксации с помощью:
git revert <commit id>теперь вы локальная ветвь будет иметь все файлы в частности
Comments