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

如何恢复Git Stash中特定的未追踪文件?

恢复Git Stash中的未追踪文件

当你用git stash -u(或git stash --include-untracked)暂存包含未追踪文件的内容时,常规的git checkout stash@{0} -- file命令无法恢复未追踪文件——原因是这些文件存储在stash快照的独立提交节点中,而非主stash提交的树结构里。

方法1:提取单个未追踪文件

使用git show命令将stash中的未追踪文件内容写入本地对应路径:

git show stash@{0}:relative/path/to/untracked-file > relative/path/to/untracked-file

替换relative/path/to/untracked-file为你要恢复的文件的相对路径(可从git stash show stash@{0} -u的输出中获取)。

方法2:通过stash的第三个父节点恢复

Git stash是一个合并提交,其中第三个父提交专门存储未追踪文件的快照,你可以直接指定这个节点来checkout文件:

git checkout stash@{0}^3 -- relative/path/to/untracked-file

这个命令会直接将目标未追踪文件从stash快照恢复到工作区。

方法3:恢复整个stash(适合需要全部文件的场景)

如果需要恢复stash里的所有文件(含已追踪和未追踪),直接执行:

git stash apply stash@{0}

若恢复后不需要保留该stash记录,可用git stash pop stash@{0}替代apply。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:44:53