Я следовал инструкциям по созданию страниц github и забыл перейти в подкаталог git. В результате я просто уничтожил целый каталог документов с помощью git clean -fdx
.
Как я могу исправить эту ужасную ошибку?
119
Я следовал инструкциям по созданию страниц github и забыл перейти в подкаталог git. В результате я просто уничтожил целый каталог документов с помощью git clean -fdx
.
Как я могу исправить эту ужасную ошибку?
git clean -fdx
без предупреждения предполагает, что операция настолько опасна. Интересно, сколько людей безвозвратно уничтожили свои файлы этим, казалось бы, невинным предложением.git clean
звонков. Также постарайтесь избавиться от привычки убирать без проверки. Создайте сценарий Powershell или Bash, который можно вызвать, который будет запускатьсяgit clean -fdxn
с запросом подтверждения, прежде чем вы действительно запустите невероятно разрушительную очистку.Ответы:
Нет. Эти файлы исчезли.
(Только что проверил в Linux: git clean calls
unlink()
и заранее ничего не копирует.)источник
git clean
случайно удалил отложенные изменения внутри.idea
скрытой папки, и меня спасла местная история!Выполнит пробный прогон и покажет, какие файлы будут удалены, если вы запустите
(конечно, это полезно, только если вы знаете это заранее, но в следующий раз)
источник
-n
работает с большинством команд git (и многими другими командами * nix).IntelliJ / Android Studio позволяет восстанавливать файлы из локальной истории .
источник
Нет. "Git clean -fdx" удалит все файлы и каталоги, которые git не отслеживает, из вашего рабочего каталога. Поскольку Git не отслеживает эти файлы, у него не будет резервных копий этих файлов. По крайней мере, обычно.
Если вы относительно недавно выполнили «git add» для одного из этих файлов (но прервали фиксацию), есть шанс найти его с помощью «git fsck --lost-found». Стоит попробовать, но не надейтесь слишком.
В будущем вам следует подумать о том, чтобы совершать несколько раз слишком часто, чем несколько раз слишком редко. Таким образом, у вас будет хотя бы локальная резервная копия, даже если вы не отправите эти коммиты на удаленный компьютер.
источник
mkdir
этогоКак упоминал @kusma выше, если вам повезет (если вы когда-либо использовали "git add"), вы можете использовать следующее для извлечения всего объекта:
Таким образом, он будет искать все типы фрагментов, собирать все различия и добавлять в файл, из которого вы можете извлечь потерянный файл. В моем случае я потерял целый класс Java.
источник
Если вы используете любую IDE Jetbrains, есть возможность просмотреть локальную историю файла. Если вы это сделали
git clean
, вы можете воссоздать файл, проверить локальную историю файла и восстановить его оттуда.Работал у меня для одного файла. Для полного каталога я понятия не имею, как это сделать.
источник
У меня сегодня была эта проблема.
Как говорили другие, git не хранит файлы.
Единственный способ отменить это - использовать утилиту восстановления. Я использовал «extundelete» и восстановил все, но ваша файловая система может отличаться.
источник
Если вы работаете над Eclipse, одним из возможных решений является восстановление из локальной истории Eclipse.
источник
Собственно да ! Это возможно! Но без использования команд git.
Все, что нам нужно, это просто инструмент для восстановления файлов, такой как Recuva .
Просто укажите путь, по которому он был удален, и позвольте ему восстановить файлы.
Также вот несколько полезных примечаний по использованию этого приложения:
Advanced Mode
->Options
->Actions
->Restore folder structure
При этом все ваши файлы будут восстановлены с сохранением структуры папок, так что тогда это будет намного проще просто перетащите эту папку на путь, откуда она была удалена.
Предупреждение! Как только вы потеряете (случайно удалите) какой-либо файл, старайтесь не трогать (добавлять / редактировать файлы) диск, с которого он был удален, чтобы повысить вероятность успешного восстановления. В противном случае вы можете полностью потерять этот файл.
Почему это работает: когда вы удаляете файл, на самом деле он не удаляется. Он просто помечен как «удаленный», поэтому в следующий раз, когда вы добавите / обновите файлы на тот же диск, эти старые файлы будут перезаписаны новыми. Но до тех пор, пока они не будут перезаписаны, все еще можно прочитать (и, конечно же, восстановить) файлы.
источник
Я сделал это с кодом, который должен был добавить в свой репозиторий, и очистил с помощью -dfx и смог восстановить файлы.
Я пытался использовать debugfs, искать и ссылаться на inodes, testdisk и многие другие появляющиеся инструменты, но никто не нашел каталог, который эта дурацкая запись была стерта случайно.
Загрузите extundelete с sourceforge.
Вероятно, вам потребуется установить пакет e2fslibs-dev.
Выполнить
Он сгенерирует двоичный файл для extundelete внутри папки src. В моем случае я ошибочно стер папку. назовем это ФУБАР
Я только что побежал:
и он создал папку с именем RESTORED_FOLDERS
источник
Если вы используете git с MSBuild, я создал цель, которая копирует все файлы, а затем это делает
git clean -xdf
. Таким образом, вы можете легко восстановить файл, если поймете, что удалили то, что не хотели удалять. Взгляните сюда: http://blog.3d-logic.com/2012/11/04/safe-git-clean-with-msbuild/источник
Если вы используете Mac и сделали резервную копию с помощью
Time Machine
, вы можете восстановитьисточник
К счастью, я допустил эту ошибку при использовании Windows 7. Зашел в корзину, выделил все удаленные файлы и нажал «Восстановить». Готово.
источник
git clean
не перемещает файлы в корзину.Если вы не отправили свои изменения (git push), вы также можете вернуть информацию с вашего сервера, которая еще не обновлена. Я использовал filezilla, чтобы вернуть файлы, которые я удалил, и скопировал их в свои локальные файлы. Это не лучший способ, но он работает и позволяет избежать использования консоли.
источник