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

CentOS 7下执行git stash后,如何恢复被删除的未跟踪文件?

恢复未跟踪的被删除文件

首先明确:git stash 默认仅保存已跟踪文件和已暂存的修改,未执行过 git add 的未跟踪文件不会被存入 stash,这就是你用 git rev-list -g stash | xargs -n1 git ls-tree -r | sort -u | grep conf 找不到目标文件的原因。

要恢复这类未跟踪文件,只能通过系统级文件恢复工具尝试,以下是具体方案:

方法:使用extundelete恢复文件

CentOS 7 常用 ext4 文件系统,extundelete 是适配该文件系统的恢复工具,操作步骤如下:

  1. 立即停止对仓库所在磁盘分区的写入操作(避免新数据覆盖被删除文件的磁盘空间),若条件允许,先卸载分区:
    sudo umount /path/to/your/git/repo
    
  2. 安装 extundelete(若 yum 源无该包,需自行编译安装):
    sudo yum install extundelete
    
  3. 通过 df -h 命令确认仓库所在的磁盘设备名(例如 /dev/sda1):
    df -h /path/to/your/git/repo
    
  4. 恢复整个仓库目录下的文件:
    sudo extundelete /dev/sdX --restore-directory /path/to/your/git/repo
    
    或恢复指定文件(替换为你的目标文件路径):
    sudo extundelete /dev/sdX --restore-file /path/to/your/git/repo/target-file.conf
    
  5. 恢复完成后,文件会被存放在当前目录的 RECOVERED_FILES 文件夹中。

注意事项

  • 恢复成功率取决于被删除文件的磁盘空间是否被新数据覆盖,操作越及时,成功率越高。
  • 若仓库所在分区无法卸载(如系统分区),请尽量避免执行任何写入磁盘的操作(如安装软件、创建文件等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:22:07