4

我是 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

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

$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 软件。

4

1 回答 1

82

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

于 2012-10-23T18:47:51.587 回答