2013-05-17 3 views
6

git clean -f -d удаленные файлы из моего локального каталога, а также Как их восстановить? Я использовал его для удаления неподготовленных каталогов и файлов и обнаружил, что он также удалил его из локальной файловой системы. Это возможно? Что я сделал не так, и есть ли способ их восстановить?git clean -f -d удаленные файлы из моего локального каталога

+1

«Что я сделал не так?» Это зависит от того, что вы ожидали. Похоже, что 'git clean -f -d' вел себя как задокументированный: он удалял неиспользуемые файлы и каталоги из вашей рабочей копии. По определению, если они не отслеживаются, они не находятся в репозитории, поэтому оттуда они больше не могут быть удалены. – David

ответ

4

Как сказано в предыдущем ответе, если вы работаете в Linux, вы не можете их восстановить. Они ушли: вот в чем смысл «git clean». Если вы не используете файловую систему, способную делать снимки, но потом, вероятно, знаете, как вернуть их.

Если ваша цель в том, чтобы не видеть их в «статус мерзавца», у вас есть две возможности:

A)

git status -uno 

не печатает неотслеживаемые файлы и каталоги.

B) Если есть фиксированный набор файлов (или шаблон имени файла), которые вы никогда не хотели бы видеть в «статус мерзавца», ни поставить их под контроль версий, вы можете «игнорировать» их. Вам просто нужно поместить свое имя или шаблон в файл с именем «.gitignore» в корне вашего репозитория.

Это обычно используется для сгенерированных файлов.

Следующий пример игнорирует имена файлов, оканчивающиеся на ".html" и файл под названием "из/Myfile.txt":

*.html 
out/myFile.txt 

См

git help ignore 

для получения дополнительной информации.

+0

да работает на Linux. – tan

+1

Говорят, что есть 2 вида людей: те, кто потерял работу из-за неправильной команды git и тех, кто не потерял работу * * yet ** :) – deubeuliou

+0

Обратите внимание, что вся надежда не всегда утеряна: если файлы открываются в редакторе, и если указанный редактор не перезагружает их автоматически, вы можете их снова сохранить. – deubeuliou

1

Файлы, удаленные git clean, были отслежены, что означает, что git не сохранил дополнительную копию. Если вам нужно их получить, лучший выбор - немедленно перемонтируйте файловую систему только для чтения и запустите инструмент удаления удаленных файлов, подходящий для вашей операционной системы.

1

Это действительно зависит от того, как вы их удалили. В Windows эти файлы должны были просто попасть в корзину. В Linux я считаю, что git использует команду rm, поэтому вам следует выполнить быстрый поиск того, как восстановить файлы, случайно удаленные с помощью rm.

Смежные вопросы