10条GIT线从我的电脑上擦除8Gb - 如何让它们恢复?

use*_*195 -1 git recovery

我是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
Run Code Online (Sandbox Code Playgroud)

然后我看到很多文件被跟踪和未跟踪,我试图删除它们(从git).我不知道我会从我的电脑上删除它们.所以我做了以下事情:

$git rm
$git rm --cached *.c
Run Code Online (Sandbox Code Playgroud)

这样我删除了所有跟踪的文件.所以我继续说:

$git clean -f
$git clean -f -d
$git clean -f -x
$git clean -d -x -n
Run Code Online (Sandbox Code Playgroud)

这样我删除了一些未跟踪的文件,系统没有使用的文件(我使用的是Windows).现在这就是我所拥有的:

$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
Run Code Online (Sandbox Code Playgroud)

也许我使用了更多的命令,但我不记得了!我只是想恢复我的旧文件,我将停止使用这个可爱的Git软件.

Die*_*Epp 75

好家伙.我看到你做了什么,而且它不漂亮.让我们阅读"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.

  • 我真的,真心希望这会给你一个逆转徽章. (24认同)
  • 偶然发现了其他线程中链接的这个。只是想指出,如果您将存储库保存在带有 SSD 的更现代的计算机上,则更有理由进行备份,因为 SSD 实际上会立即清理内存,这与 HDD 不同,如果您速度很快,您可能能够恢复数据 (4认同)
  • 我希望OP确实有一些备份.另外,我鼓励OP在[su]上查看一些数据[恢复问题](http://superuser.com/questions/tagged/data-recovery?sort=faq&pagesize=15) (2认同)