执行git stash后如何找回WIP?如何恢复至工作状态B?
解决方案
首先明确:Git stash不会覆盖之前的stash记录,每次stash都会新增一条独立记录,采用栈结构存储(最后执行的stash在最顶端)。你第二次stash保存的是状态B,第一次是状态A,两者互不影响。
你执行git stash pop后,状态B本应恢复到工作区,同时这条stash记录被删除。如果当前工作区不是状态B,可能是恢复时出现冲突或误操作,可通过以下步骤找回:
步骤1:查看所有可恢复的stash记录
执行命令查看包括已pop但未被Git垃圾回收的所有stash历史:git stash list --all你能看到哈希值为
5165c71bf07f84a540496032828268c274e3f040的状态B记录。步骤2:恢复指定的stash记录
通过哈希值直接恢复状态B,该命令仅恢复内容不删除记录,更安全:git stash apply 5165c71bf07f84a540496032828268c274e3f040可选:清理指定stash记录
确认状态B恢复后,若要删除这条stash记录,执行:git stash drop 5165c71bf07f84a540496032828268c274e3f040
如果想先查看状态B的具体内容,可执行:
git stash show -p 5165c71bf07f84a540496032828268c274e3f040
内容的提问来源于stack exchange,提问作者Anna Setiva
相关产品推荐
相关产品推荐

