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

如何恢复被git rm删除且未提交的子模块文件夹

解决方案

你的核心问题是父仓库从未存储过folder的实际文件内容,仅存储过指向它的子模块gitlink条目,所以你之前使用的checkout、restore等从父仓库提交记录恢复文件的命令都不会生效,可按以下优先级操作:

  1. 取消暂存的删除记录
    执行命令清除当前待提交的删除标记,避免误提交变更:
    git reset HEAD folder
    
  2. 从系统回收站恢复
    桌面环境下git执行的删除操作大概率会将文件移入系统回收站,直接找到folder目录恢复即可,这是成本最低的恢复方式。
  3. 恢复子模块原本地仓库文件
    如果你之前在folder内部执行过提交操作,且重命名过内部的.git文件夹,可以用磁盘数据恢复工具扫描当前磁盘,查找你重命名后的.git备份目录,恢复该目录后即可拿到所有提交过的folder内的文件。
  4. 从父仓库暂存记录找回
    如果你之前在父仓库中将folder作为普通文件夹执行过git add操作,可以通过以下命令提取丢失的文件:
    git fsck --lost-found
    
    执行完成后,所有丢失的文件会被写入.git/lost-found/other目录,你可以逐个查看内容,手动恢复需要的文件。

后续规避操作

恢复文件后,直接删除folder目录下的.git相关文件夹,再执行git add folder即可将它作为普通文件夹正常提交,不会再出现带箭头的子模块标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:06:01