10 строк GIT стерты с моего компьютера 8Gb - Как их вернуть?

Я новичок в GIT и не знал, насколько мощна эта программа... Я стер 8 Gb из нескольких команд.
Насколько я помню, я набрал следующие строки:

$git config --global user.name "my name"
$git config --global user.email "my email"
$git add *.c
$git commit -m
$git status

затем я увидел много отслеживаемых и неотслеживаемых файлов и попытался их удалить (из git). Я не знал, что удалю их со своего компьютера. Поэтому я сделал следующее:

$git rm
$git rm --cached *.c

таким образом я удалил все отслеживаемые файлы. Поэтому я продолжил:

$git clean -f
$git clean -f -d
$git clean -f -x
$git clean -d -x -n

таким образом я удалил некоторые из неотслеживаемых файлов, которые не использовались системой (я использую окна). И теперь это то, что у меня есть:

$git status
On branch master
Initial commit
Untracked files:
 (use "git add <file>..." to include in what will be commited)
 .gitconfig
 AppData/
 Desktop/
 Favourites/
 NTUSER.DAT
 NTUSER.DAT{some characters and numbers}
 ntuser.dat.LOG1
 ntuser.dat.LOG

$git checkout
fatal: You are on a branch yet to be born

Возможно, я использовал больше команд, но я не помню! Я просто хочу восстановить свои старые файлы и перестану использовать это прекрасное программное обеспечение Git.


person user1769195    schedule 23.10.2012    source источник
comment
Вы никогда не вернете неотслеживаемые файлы из git, поскольку они не отслеживаются и не записываются.   -  person tpg2114    schedule 23.10.2012
comment
Вслепую вводимые команды всегда заканчиваются здесь   -  person sciritai    schedule 23.10.2012
comment
Надеюсь, у вас есть недавняя резервная копия вашего компьютера...   -  person Messa    schedule 23.10.2012
comment
Если для вас действительно очень важно, чтобы вы вернули свои файлы, немедленно выключите компьютер, загрузитесь с Linux livecd и используйте утилиту восстановления, чтобы попытаться восстановить вещи. Ваш пробег будет варьироваться, и есть вероятность, что данные уже потеряны. Если это не так важно, просто создайте заново и двигайтесь дальше. @Messa: конечно нет, никто никогда так не делает.   -  person Wug    schedule 23.10.2012
comment
самый деструктивный новичок, но с вами все будет в порядке, пока это не ваш репозиторий   -  person prusswan    schedule 23.10.2012
comment
кстати, git init(?) в %HOME% не очень хорошая идея   -  person prusswan    schedule 23.10.2012
comment
Пожалуйста, ребята, он просит о помощи в момент, который, очевидно, не очень веселый.. не нужно продолжать рассказывать, какая это была плохая идея.   -  person Steoates    schedule 23.10.2012
comment
да ладно, всем время от времени нужно немного злорадства в свой день. cackles manically   -  person kayaker243    schedule 24.10.2012
comment
Спасибо! К счастью, моя система пока в порядке, после перезагрузки даже я не восстановил свои файлы (конечно, у меня нет резервной копии), а только сохранил важные файлы. Достаточно GIT для меня на данный момент! Хорошего дня!   -  person user1769195    schedule 24.10.2012
comment
@user1769195 user1769195 Вы должны запустить восстановление системы. Таким образом, вы можете вернуть свои старые файлы, которые вы не сохранили. Шаг 1: Сделайте резервную копию всех ваших файлов. Шаг 2: Запустите восстановление системы. Удачного выздоровления! Ссылка: windows.microsoft.com/en-US/windows7/ продукты/функции/   -  person    schedule 05.02.2013
comment
Я пришел из SVN, и я просто хочу отметить, что Git намного безопаснее, чем SVN. Не говорите, что Git виноват, потому что вы неправильно его использовали; если вы svn delete, вы столкнетесь с теми же проблемами. Дайте ему шанс, но используйте его с умом :-).   -  person Alain Tiemblo    schedule 13.08.2014
comment
@AlainTiemblo: на самом деле svn delete защищает от этого: команда не удалит неверсированные или измененные элементы; используйте параметр --force, чтобы переопределить это поведение. (Примечание: кажется, что OP также использовал параметры --force...)   -  person Ben Voigt    schedule 02.10.2014
comment
Я не согласен с: Этот вопрос вряд ли поможет будущим посетителям эта катастрофа предотвратит несколько других, включая меня!   -  person Cutton Eye    schedule 23.01.2020


Ответы (1)


О, парень. Я вижу, что ты сделал, и это некрасиво. Давайте прочитаем документацию по «git clean»:

git-clean — удалить неотслеживаемые файлы из рабочего дерева

Это означает, что git-clean удаляет файлы, которые он не может восстановить. В Git предусмотрены некоторые меры безопасности, чтобы вы случайно не запустили git clean — он не удалит каталоги, если только вы укажете -d, не удалит проигнорированные файлы, если вы не передадите -x, и вообще ничего не сделает, если вы не укажете -f.

Похоже, вы превратили свой домашний каталог в репозиторий Git, зафиксировали файлы *.c, а затем удалили все остальное.

В основном это похоже на запуск rm -rf * или del /s *.* в Windows. Не делайте этого.

Решение

Восстановить из резервной копии.

Если у вас нет резервной копии, то это болезненный предметный урок о том, почему у нас есть резервные копии, и вам придется попытаться восстановить удаленные файлы — и вы должны выключить компьютер и не загружаться в Windows, пока это не будет завершено.

Примечание о «неотслеживаемых файлах»

«Неотслеживаемый файл» — это файл, который не является частью вашего репозитория Git. Я вижу, как если вы думаете, что неотслеживаемые файлы являются частью вашего репозитория Git, вы будете пытаться делать все более опасные вещи, пока они не будут удалены. Неотслеживаемые файлы никогда не были частью вашего репозитория Git с самого начала, поэтому вам не нужно было ничего делать, чтобы удалить их из вашего репозитория Git.

Примечание к -f

Параметр -f/--force означает «эта команда удалит данные, и я знаю, что делаю». Прежде чем вводить -f в любой командной строке, вы должны на мгновение задуматься о том, какие данные удалит эта команда, и убедиться, что вы действительно хотите их удалить.

Например, git rm принимает -f в качестве параметра. Команда git rm откажется удалять файл с незафиксированными изменениями, потому что это уничтожит изменения. Использование -f отменяет это поведение, позволяя вам уничтожать данные с помощью git rm.

person Dietrich Epp    schedule 23.10.2012
comment
Я очень, искренне надеюсь, что это принесет тебе значок Разворота. - person BoltClock; 23.10.2012
comment
ну, я надеюсь, что у ОП есть резервные копии. В противном случае я бы посоветовал ОП взглянуть на некоторые вопросы о восстановлении данных на Суперпользователь - person Sathyajith Bhat; 23.10.2012
comment
лол, я только что внес свой вклад, чтобы увидеть, что он получает этот значок. - person kayaker243; 24.10.2012
comment
Спасибо за ответ, теперь я знаю, что я там делал! К счастью, моя система пока в порядке, после перезагрузки даже я не восстановил свои файлы (конечно, у меня нет резервной копии), а только сохранил важные файлы. Достаточно GIT для меня на данный момент! Хорошего дня! - person user1769195; 24.10.2012
comment
Наткнулся на эту ссылку в других темах. Просто хотел отметить, что существует еще больше причин для резервного копирования, если вы сохраняете свой репозиторий на более современном компьютере с SSD, поскольку SSD фактически сразу очищают память, в отличие от жестких дисков, где вы можете восстановить данные, если вы быстро - person Assimilater; 25.07.2017