Я удалил несколько файлов.
Я еще не совершал.
Я хочу сбросить рабочее пространство для восстановления файлов.
Я сделал 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
?
git checkout .
все бы работало нормально.Ответы:
Выходные данные говорят вам, что вам нужно сделать.
git reset HEAD cc.properties
и т.п.Это приведет к отключению операции rm. После этого,
git status
повторное выполнение скажет вам, что вам нужно сделать,git checkout -- cc.properties
чтобы получить файл обратно.Обновление: у меня есть это в моем конфигурационном файле
который я обычно использую, чтобы рассортировать вещи.
источник
git reset HEAD \*
а затемgit checkout -- .
rm -r ./engines
- ой. Теперьgit reset engines; git checkout engines
.Вы поставили удаление, поэтому вам нужно сделать:
git checkout .
только извлекает из индекса, где удаление уже было организовано.источник
Просто делать
git checkout path/to/file-I-want-to-bring-back.txt
источник
error: pathspec 'file.ext' did not match any file(s) known to git.
git status
об этом сказать?git checkout HEAD -- file.ext
помогавший его восстановить.Чтобы восстановить все неразмеченные удаления сразу, автоматически, без указания каждого отдельного пути:
Чтобы восстановить все поэтапные удаления одновременно, автоматически, без указания каждого отдельного пути:
источник
git status --long | grep 'deleted:' | awk '{print $2}' | xargs git reset HEAD --
.git ls-files -d | sed -e "s/\(.*\)/'\1'/" | xargs git checkout --
будет работать.Поскольку вы делаете
git checkout .
, похоже, что вы пытаетесь восстановить свою ветку обратно в состояние последнего коммита.Вы можете достичь этого с
git reset HEAD --hard
Предупреждение
Это может привести к удалению всех ваших последних модификаций и отмене внесения изменений, например, вы можете потерять работу. Это может быть то, что вы хотите, но проверьте документы, чтобы убедиться.
источник
если вы использовали
затем удалить файл
не работает, так что в этом случае
должно сработать
источник
git checkout HEAD^ path/to/filename
работал на меня, так как я не передал файл.Вот команда, которая помогла мне на моем Mac. Я попробовал несколько других решений, но они не работали для меня.
Git-версия на OSX Mavericks
команда
источник
источник
Используйте
git ls-files
для извлечения удаленных (-d) или измененных (-m) файлов.см. Как я могу восстановить только измененные файлы в git checkout?
источник
git ls-files -d | xargs -I{} git checkout "{}"
.Если вы хотите восстановить все файлы одновременно
Не забудьте использовать точку, потому что она говорит Git захватить все файлы.
Эта команда сбросит голову и отменит все изменения:
Затем запустите это, чтобы восстановить все файлы:
Затем, сделав статус git, вы получите:
источник
Вы можете хотеть увидеть это
это относится к случаям, когда вы использовали
прежде чем что-то совершить.
Вы также можете избавиться от созданных файлов, которые еще не были созданы. И вы не хотите их. С :
источник
git checkout -- .
не поможет восстановить удаленные файлы и эквивалентно тому , что пытался Аскер:git checkout .
. Часть , которая может работать это один вы не скопировали:git checkout <file_path>
.Нашел этот пост во время поиска ответов о том, как удалить файл, который был удален в моем рабочем каталоге после слияния с чужой веткой. После слияния еще не было сделано никаких обязательств. Поскольку это было слияние, я не мог просто добавить его обратно, используя:
Мне пришлось сделать еще один шаг в дополнение к сбросу, чтобы вернуть файл:
источник
Если вы не зафиксировали никаких изменений, все, что вам нужно сделать, это спрятать эти изменения, и вы вернетесь к последнему рабочему коммиту.
источник
если вы ищете удаленный каталог.
источник
Вот различные случаи в качестве справки, чтобы помочь другим:
Если удаление не было зафиксировано , приведенная ниже команда восстановит удаленный файл в рабочем дереве.
Вы можете получить список всех удаленных файлов в рабочем дереве, используя команду ниже.
Если удаление было зафиксировано , найдите коммит, где оно произошло, а затем восстановите файл из этого коммита.
Это должно дать вам что-то вроде
c46e81aa403ecb8a0f7a323a358068345
, теперь используйте commit # здесьПримерно так: $ git checkout c46e81aa403ecb8a0f7a323a358068345 -
Если вы ищете путь к файлу для восстановления, следующая команда отобразит сводку всех удаленных файлов.
Если вы хотите просто отобразить список файлов:
источник
Для меня то, что сработало, было
git checkout {SHA1 of commit with version to restore} "{path to file to restore}"
Например
git checkout 5a6b3179e58edff9c90326b9a04284b02fd67bd0 "src-ui/views/includes/radar.pug"
(выполняется в ветке, в которую мы хотим, чтобы файл вошел)
После выполнения этой команды восстановленный файл будет существовать в исходном местоположении (что необходимо будет указать)
источник
git checkout master path/to/the/file.bin
так, чтобы вы просто удалили этот файл, не теряя других изменений, которые вы могли сделать. PS: это должен быть принятый ответ ...Если вы установили ToroiseGIT, просто выберите пункт «Вернуть ...» для всплывающего меню родительской папки.
источник
1. Найдите тот конкретный коммит, к которому вы хотите вернуться, используя:
2. Возврат к этому коммиту с использованием:
Теперь у вас в локальной ветке будут все файлы в частности
источник
ВНИМАНИЕ: передайте любую работу, которую хотите сохранить в первую очередь.
Вы можете сбросить рабочее пространство (и восстановить удаленные файлы)
источник
./*
../*
bash будет расширен до совпадения этих файлов перед отправкой в git.У меня была такая же проблема, однако ни одно из вышеперечисленных решений не помогло мне. Я закончил тем, что:
- создал пустой файл с тем же именем
- сравнил этот файл с его локальной историей
- скопировал историю в пустой файл.
источник
У меня была та же проблема, и ни один из ответов, которые я здесь пробовал, также не помог мне. Я использую Intellij, и я извлек новую ветку,
git checkout -b minimalExample
чтобы создать «минимальный пример» для новой ветки некоторой проблемы, удалив кучу файлов и изменив кучу других в проекте. К сожалению, несмотря на то, что я не зафиксировал никаких изменений в новой ветви «минимального примера», когда я снова извлек свою «оригинальную» ветку, все изменения и удаления из ветви «минимального примера» произошли в оригинальная "ветка" тоже (или так появилась). Поgit status
удаленным файлам просто пропали из обеих веток.К счастью, даже несмотря на то, что Intellij предупредил меня, что «удаление этих файлов не может быть полностью восстановлено», я смог восстановить их (на минимальной ветке примера, из которой они были фактически удалены), щелкнув правой кнопкой мыши по проекту и выбрав Local History > Показать историю (а затем восстановить на самом последнем элементе истории, который я хотел). После того, как Intellij восстановил файлы в ветке «минимального примера», я переместил ветку в origin. Затем я переключился на свою «оригинальную» локальную ветку и побежал,
git pull origin minimalExample
чтобы вернуть их и в «оригинальную» ветку.источник