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

问题描述 投票:1回答:1

我不太确定它是怎么发生的(当涉及到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

git
1个回答
1
投票

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

编辑:所以这是我最好的猜测出了什么问题......

git init在'〜/'目录下完成,这个repo'waifu2x-mac'被克隆/下载到桌面。 Build.sh是从'Desktop / waifu2x-mac的位置从终端运行的,

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

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

在这一点上,你有有限的选择,没有任何保证。查看此链接并尝试其中列出的一些建议(如extundelete和USB恢复工具)Can I undo a `git clean -fdx`?

祝你好运 - 当这一切都完成后,我肯定会在那个waifu2x-mac的Repo上打开一个问题,并在这个问题上链接这个问题。即使涉及用户错误,也不应该存在程序具有自动删除与其无关的一切的自主权的问题,尤其是在失败条件下。 (也为什么它恢复到父git仓库,并选择该位置删除是超出我...)

另外我的评论下面关于git没有任何删除文件的命令是完全错误的,我很清楚这一点。

© www.soinside.com 2019 - 2024. All rights reserved.