Git删除了我所有的文件

Git删除了我所有的文件,git,Git,我刚刚在我的主目录中运行了gitclean-df,我的所有文件都被删除了。谁能解释一下这个问题吗?我想几年前我无意中提交了我的主目录,这导致它回滚到更高版本?但是,如果没有地方去推动它,我又怎么会做出这样的承诺呢 更新:我发现我在主目录中创建了项目 参见 -d 除了删除未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由其他Git存储库管理,则默认情况下不会删除该目录。如果确实要删除这样的目录,请使用-f选项两次 -f --强迫 如果Git配置变量clean.requireForce未设置为f

我刚刚在我的主目录中运行了
gitclean-df
,我的所有文件都被删除了。谁能解释一下这个问题吗?我想几年前我无意中提交了我的主目录,这导致它回滚到更高版本?但是,如果没有地方去推动它,我又怎么会做出这样的承诺呢

更新:我发现我在主目录中创建了项目

参见

-d 除了删除未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由其他Git存储库管理,则默认情况下不会删除该目录。如果确实要删除这样的目录,请使用-f选项两次

-f --强迫 如果Git配置变量clean.requireForce未设置为false,则Git clean将拒绝运行,除非给定-f、-n或-i

基本上,您告诉git删除当前目录中它不知道的所有文件参见

-d 除了删除未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由其他Git存储库管理,则默认情况下不会删除该目录。如果确实要删除这样的目录,请使用-f选项两次

-f --强迫 如果Git配置变量clean.requireForce未设置为false,则Git clean将拒绝运行,除非给定-f、-n或-i

基本上,您告诉git删除当前目录中它不知道的所有文件

。。。导致它回滚到更高版本

这不是git clean所做的。它只是删除Git当前未跟踪的任何文件。它不会更改包含修改的跟踪文件

但是,如果没有地方去推动它,我又怎么会做出这样的承诺呢

这与Git的工作方式无关。为了初始化回购协议并开始向其提交内容,您不需要将任何内容推送到任何地方

如果您在包含文件的目录中初始化存储库,则可以。现在,您的存储库有0个跟踪文件,并且已经存在的每个文件都是未跟踪的文件

然后,您告诉Git删除所有未跟踪的文件,并确认确实希望Git使用
-f
标志执行此破坏性操作。更糟糕的是,您使用
-d
告诉Git递归地下降到目录中,并删除它在目录中找到的任何未跟踪文件

。。。导致它回滚到更高版本

这不是git clean所做的。它只是删除Git当前未跟踪的任何文件。它不会更改包含修改的跟踪文件

但是,如果没有地方去推动它,我又怎么会做出这样的承诺呢

这与Git的工作方式无关。为了初始化回购协议并开始向其提交内容,您不需要将任何内容推送到任何地方

如果您在包含文件的目录中初始化存储库,则可以。现在,您的存储库有0个跟踪文件,并且已经存在的每个文件都是未跟踪的文件


然后,您告诉Git删除所有未跟踪的文件,并确认确实希望Git使用
-f
标志执行此破坏性操作。更糟糕的是,您使用
-d
告诉Git递归地进入目录,并删除它在目录中找到的任何未跟踪文件。

这太可怕了。我不是OP.但是有没有办法把那些文件拿回来。。只是好奇…@Vishwanath不,他们走了,露出其他形式的备份。这并不比知道
rm-rf*
存在更可怕。是的,如果你做了傻事,你可以删除你所有的文件。答案是不要做那些事情。不知道你在做什么是非常可怕的,这就是教训,而不是说git有问题。这是可怕的。我不是OP.但是有没有办法把那些文件拿回来。。只是好奇…@Vishwanath不,他们走了,露出其他形式的备份。这并不比知道
rm-rf*
存在更可怕。是的,如果你做了傻事,你可以删除你所有的文件。答案是不要做那些事情。不知道你在做什么是非常可怕的,这就是教训,不是说
git
有问题。这里有一个隐含的“如何恢复我的文件?”问题吗?还是你只是好奇发生了什么?@meagar,不,我只是想知道发生了什么,这样我就可以从中吸取教训。我知道文件不见了,这要看你有没有跟踪过。如果您以前添加并提交了文件,然后在运行
git clean
之前将其软重置为早期状态,那么有一种非常人为的方法可以恢复这些文件,但这似乎不太可能。但是如果没有地方将其推送,我将如何提交这些文件呢。演示了对分布式版本控制系统的功能和工作方式缺乏基本的理解。不,他们从未承诺过。我想看看目录是否被跟踪过。你知道这个命令吗?这里有一个隐含的“我如何恢复我的文件?”问题吗?还是你只是好奇发生了什么?@meagar,不,我只是想知道发生了什么,这样我就可以从中吸取教训。我知道文件不见了,这要看你有没有跟踪过。如果您以前添加并提交了文件,然后在运行
git clean
之前将其软重置为早期状态,那么有一种非常人为的方法可以恢复这些文件,但这似乎不太可能。但是如果没有地方将其推送,我将如何提交这些文件呢。演示了对分布式版本控制系统的功能和工作方式缺乏基本的理解。不,他们从未承诺过。我想看看目录是否被跟踪过。您知道用于此的命令吗?您没有看到
git状态
?您没有看到
git状态