git init / build.sh删除了桌面上的所有文件

时间:2019-03-27 03:23:19

标签: git

我不太确定它是如何发生的(涉及git时是业余爱好者),但是以某种方式,在执行git init之后,删除了我的整个桌面(很多文件)。我已经尝试了许多来自Google搜索的建议,例如“ git reset --hard refs / original / refs / heads / master”之类的东西,但它总是会返回错误。我试过列出分支,签出和登录,但是它们都不返回任何内容...?我完全迷路了-我只想要我的文件。我不确定是否已删除或移动它们。...我目前有大约60GB的可用空间,但是我不记得发生事故前的状况-我知道过去几天里大约有40处可用空间,所以也许它消失了?我不确定我是否记得最近清理过任何空间。如果有问题,我在Mac上。

编辑:几乎所有内容(似乎与此相关的命令,指向我正在安装的程序的链接及其build.sh)似乎不是git init,而是由于build错误而引起的.sh? https://docs.google.com/document/d/1_NH1iDkHP6u5PTUYtxbCMJDB8MMqNCUdhnD4yXk3F6E/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

Git初始化不应删除任何内容,它会在执行命令的任何目录中创建一个名为.git的新文件夹。现在,考虑到发生了某些事情,它不应该做的事对您没有多大帮助,但是我99%的确确定实际上没有删除任何内容,因为git init命令没有任何删除文件的调用。即使您git init在充满文件的目录中,它也只会初始化该.git目录。现在,我唯一的猜测是,也许您的桌面文件会以某种方式放入该.git目录(默认情况下为隐藏目录)中,并且所有文件都在那里,只是被隐藏了。如果您使用的是Unix系统,是否可以在ls -la上尝试/Desktop并查看是否存在包含任何内容的隐藏.git目录。在Windows系统上,您可以开始在开始菜单中输入“显示隐藏的文件夹”,它应该为您提供一个选项来查看所有隐藏的文件夹(如果/ {/包含所有文件的桌面附近。.git也不应移动任何东西,但是可能出了什么问题?

编辑: 所以这是我最好的猜测...

git init在“〜/”目录中完成,此存储库“ waifu2x-mac”已克隆/下载到桌面。 Build.sh是从“ Desktop / waifu2x-mac”位置的终端运行的,

  • 脚本CD的第一行到脚本目录
  • 然后它会做一些事情来查看当前目录(这是build.sh的位置)中是否有未跟踪的文件
  • 由于未跟踪任何内容,因为它是仓库的新克隆,因此删除了当前目录(/ Desktop / waifu2x-mac)中的所有内容
  • 这包括当前正在运行的build.sh文件以及与此有关的所有内容。
  • 然后尝试将CD插入不存在的/ Directory,从而触发脚本失败。
  • ???发生了,现在它考虑了运行此脚本的git目录中的git repo'〜/'
  • 然后脚本执行失败条件命令,即 git clean -dffx

本质上,这正在运行rm -rf,但仅用于当前git目录中所有未跟踪的文件,该文件是'〜/'中的所有内容。 -d指定所有目录,而'ffx'几乎表示“强制删除包括gitignored在内的所有内容”。遗憾的是,Git clean不可撤销,因为它不会跟踪任何更改。

在这一点上,您的选择有限,不能保证。请查看此链接,然后尝试那里列出的一些建议(例如extundelete和USB恢复工具)Can I undo a `git clean -fdx`?

最幸运的是-完成所有这些操作后,我一定会在waifu2x-mac的Repo上打开一个问题,并将此问题链接到问题中。即使涉及到用户错误,也永远不会出现程序自主地递归删除所有内容的问题,特别是在失败情况下。 (这也是为什么它恢复为父级git repo并选择要从中删除的位置的原因……)

我在下面关于git的命令还没有删除文件的评论是完全错误的,我对此很清楚。