执行git stash save --include-untrack命令后如何恢复被删除的文件
git stash save --include-untrack 后文件恢复操作指南 注:该操作与你使用的Angular 10框架、Visual Studio Code编辑器无关,所有git环境下通用。执行
git stash save --include-untrack本质是将包括未跟踪文件在内的所有改动存入stash暂存栈,并非永久删除文件,按以下步骤操作即可恢复:
常规恢复(未删除对应stash记录)
- 第一步:查看当前所有stash暂存记录,确认你要恢复的条目
返回结果格式示例:git stash liststash@{0}: WIP on main: a1b2c3d 提交备注,其中stash@{n}为stash条目编号,编号越小代表存入时间越近。 - 第二步:按需求选择恢复方式
- 若需保留该条stash记录以便后续复用,执行:
git stash apply stash@{n}
直接恢复最新的stash可省略编号,仅执行git stash apply即可。 - 若恢复后不需要保留该条stash记录,执行:
git stash pop stash@{n}
同理,恢复最新记录可省略编号。
- 若需保留该条stash记录以便后续复用,执行:
特殊场景恢复(已误删对应stash记录)
如果执行stash后误操作删除了该条暂存记录(比如执行了git stash drop/git stash clear),可通过git悬空对象找回:
- 第一步:扫描所有悬空的commit对象,stash本质为特殊的commit类型
git fsck --no-reflog | grep commit - 第二步:逐个验证返回的commit hash对应的内容,找到你要恢复的stash记录
git show <你要验证的commit hash值> - 第三步:确认目标记录后直接恢复内容,执行:
git apply <目标commit hash值>
如果你想把该记录重新放回stash暂存栈,可执行:git stash store <目标commit hash值>
冲突处理
如果恢复时提示文件冲突,手动解决对应文件的冲突标记后正常提交即可,不会丢失文件内容。
内容的提问来源于stack exchange,提问作者Shetre Youse
相关产品推荐
相关产品推荐

