从我的电脑上删除了10 GIT的8Gb线路-如何将其取回?

从我的电脑上删除了10 GIT的8Gb线路-如何将其取回?,git,recovery,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 然后我看到了很多被跟踪和未跟踪的文件,我试图将它们(从git中)删除。我不知道我将从我的电脑中删除它们。因此我执行了以下操作: $git rm $

我是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
通过这种方式,我删除了一些未跟踪的文件,即系统未使用的文件(我使用的是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
$git状态
论分行行长
初始提交
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
.gitconfig
应用数据/
桌面/
宠儿/
NTUSER.DAT
NTUSER.DAT{一些字符和数字}
ntuser.dat.LOG1
ntuser.dat.LOG
$git结帐
致命:你在一根尚未出生的树枝上
也许我用了更多的命令,但我不记得了!
我只想恢复我的旧文件,我将停止使用这个可爱的Git软件。

哦,孩子。我知道你做了什么,但这并不漂亮。让我们阅读“git clean”的文档:

git clean-从工作树中删除未跟踪的文件

这意味着
git clean
删除它无法还原的文件。git有一些安全措施,这样你就不会意外运行
git clean
——除非你指定
-d
,否则它不会删除目录,除非你通过
-x
,否则不会删除被忽略的文件,并且不会执行任何操作,除非指定
-f

看起来您将主目录变成了Git存储库,提交了
*.c
文件,然后删除了所有其他文件

它基本上类似于在Windows中运行
rm-rf*
,或
del/s*
不要那样做。

解决方案 从备份恢复

如果您没有备份,那么这将是一堂痛苦的对象课,告诉您为什么要备份,您必须尝试恢复已删除的文件,并且您必须关闭计算机,在备份完成之前不要启动Windows

关于“未跟踪文件”的说明 “未跟踪文件”是指不属于Git存储库的文件。我可以看出,如果你认为未跟踪的文件是你的Git回购协议的一部分,你会尝试越来越危险的事情,直到它们被删除。未跟踪的文件从一开始就不是Git repo的一部分,因此无需执行任何操作即可将其从Git repo中删除

关于
-f
-f
/
--force
选项意味着“此命令将删除数据,我知道我在做什么。”在任何命令提示符下键入
-f
之前,您应该考虑一下此命令将删除哪些数据,并确保确实要删除它


例如,
git rm
-f
作为参数。
git rm
命令将拒绝删除包含未提交更改的文件,因为这将销毁更改。使用
-f
会覆盖此行为,允许您使用
git rm

销毁数据,您将永远无法从git取回未跟踪的文件,因为它们不会被跟踪,也不会被记录。盲目键入命令将始终在此处结束我希望您的计算机有一些最新的备份…如果确实如此,对于您来说,取回文件、立即关闭计算机、从LinuxLiveCD引导并使用取消删除实用程序尝试恢复非常重要。您的里程数会有所不同,很可能数据已经丢失。如果没有那么重要,就重新开始,继续前进@梅萨:当然不是,从来没有人这样做过。拜托,伙计们,他在一个显然不是很有趣的时候寻求帮助。。没必要一直说那是个多么糟糕的主意。我真的,真诚地希望这能给你一个反转徽章。我希望OP有一些备份。否则我会鼓励OP看一看lol的一些数据,我只是尽了自己的一份力,看看他是否得到了那个徽章。谢谢你的回答,现在我知道我在那里做了什么!幸运的是,我的系统现在还不错,重新启动后,即使我没有恢复我的文件(当然我没有备份),也只是保存了重要的文件。现在给我的钱够多了!祝您有个美好的一天!在其他线程中偶然发现此链接。我只想指出,如果您将存储库保存在一台更现代化的计算机上,并使用SSD,那么就更有理由进行备份,因为SSD实际上可以立即清理内存,而HDD则可以快速恢复数据