Sourcetree操作大Stash时无响应,如何找回暂存变更?
解决Sourcetree无法恢复大Stash的问题
直接用Git命令行操作就能绕过Sourcetree的卡顿问题,步骤如下:
先查看所有stash的列表,找到目标stash的编号:
git stash list
输出会类似stash@{0}: On branch1: xxx,记住对应的stash@{n}标识先确认该stash的内容是否完整(可选但建议做):
git stash show -p stash@{n}
这个命令会打印出stash里所有变更的diff内容,能验证数据没丢恢复stash的方法:
- 直接应用stash(应用后stash不会被删除,更安全):
git stash apply stash@{n}
如果有冲突,Git会自动标记冲突文件,手动解决冲突后用git add标记已解决,再提交即可 - 应用后直接删除该stash:
git stash pop stash@{n}
注意:如果应用时出现冲突,stash不会被自动删除,需要手动处理 - 导出成补丁文件(适合需要备份或分步处理的场景):
git stash show -p stash@{n} > stash.patch
生成的stash.patch文件可以直接查看内容,之后用git apply stash.patch来应用补丁
- 直接应用stash(应用后stash不会被删除,更安全):
内容的提问来源于stack exchange,提问作者Tom S
相关产品推荐
相关产品推荐

