执行git init、git reset --hard后桌面文件被删除的原因咨询
故障根本原因
- 你执行命令时的终端路径错了:你当时终端的工作目录在桌面根目录/用户主目录,而不是你要操作的Xcode项目文件夹,此时执行
git init会直接把当前所在的整个目录(包含桌面、关联的文稿目录)初始化为Git仓库,目录下所有文件都会被Git判定为仓库工作区文件。 - 刚执行
git init生成的新仓库没有任何用户提交记录,默认HEAD指向的是空提交状态。此时执行git reset --hard,Git会无提示强制把工作区所有文件同步到当前HEAD指向的状态——也就是空状态,所有被Git纳入跟踪范围的个人文件(你桌面上的文件、文稿下的Office文档、视频文件都在这个范围内)都会被直接删除,没有二次确认。
紧急处理建议
- 立刻停止往系统盘写入新文件,不要下载文件、不要保存新文档,避免被删除文件占用的磁盘扇区被新数据覆盖,一旦覆盖文件基本无法找回。
- 如果你之前开启过macOS的Time Machine备份,直接从对应时间点的备份恢复文件即可,这是成功率最高的方案。
- 没有本地备份的话,使用正规数据恢复工具扫描系统盘,删除时间短的话绝大多数文件都可以找回。
注意:刚初始化的空Git仓库没有存储任何你的个人文件版本,不要尝试通过Git本身的版本操作找回文件,没有作用。
后续避坑规则
- 执行任何Git命令前,先运行
pwd确认当前终端所在路径,100%确认是在目标项目文件夹内再执行操作,绝对不要在桌面、用户主目录、文稿目录这类存放大量个人文件的路径下直接执行git init。 git reset --hard属于高危不可逆命令,执行前必须通过git status确认当前仓库状态、确认要丢弃的修改范围,不要直接照搬网上搜到的命令不做判断就执行。
内容的提问来源于stack exchange,提问作者KYY
相关产品推荐
相关产品推荐

