You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何恢复Git仓库误删文件?Mac执行find命令误删项目文件求助

故障根因

你执行的删除命令存在参数拼写错误:find . name '.DS_Store' -type f -delete 中name前缺少-前缀,find会将不带前缀的参数全部识别为需要遍历的路径,最终触发了当前目录下所有非.git目录文件的删除操作。

恢复操作步骤
  • 第一步先备份当前.git目录,避免后续操作彻底损坏仓库记录:
    cp -rf .git /tmp/backup-git-dir/
  • 恢复所有已经被Git跟踪过的文件(即之前已经提交过或者add到暂存区的文件):
    git reset --hard HEAD

    注意:该操作会直接覆盖工作区所有未提交的变更,如果你的本地有未提交、也没有推送到远端的修改需要找回,先执行下一步再运行该命令。

  • 找回未提交的本地修改:
    执行 git fsck --lost-found,运行完成后所有悬空的Git对象会被写入.git/lost-found/目录,你可以直接遍历该目录下的文件,通过内容匹配找回需要的未提交代码。
  • 修复git status显示异常的问题:
    完成文件恢复后执行 git clean -fd,清除所有未被Git跟踪的冗余文件,此时再运行git status就会恢复正常显示。
后续避免同类问题

你可以全局配置Git自动忽略Mac系统生成的.DS_Store文件,不需要每次手动删除:

  1. 执行命令生成全局忽略配置文件:
    git config --global core.excludesfile ~/.gitignore_global
  2. 编辑~/.gitignore_global文件,添加一行内容 .DS_Store 保存即可,该配置对所有本地Git仓库生效。

内容的提问来源于stack exchange,提问作者Rashid Katamesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:54:01