git stash pop,不同于git stash apply, 会应用且pop出最近的一次stash,stash list不再会有之前的stash。git stash pop出的change是可以找回的.
每次git stash都会生成一个新的commit,只要知道commitID, 通过git stash apply commitID 就可以应用之前的stash,然后重新git stash, 那么新修改就
回到了stash list中。寻找commitID有两种方法:
- git stash pop 最后会打印出pop掉的commitid值,若这个记录还存在直接使用即可。
- git fsck, 会打印出所有的dangling commit, 悬挂的commit是不被任何branch引用的commit。 一般list出的第一个commit即是刚刚被pop掉的commit。也可通过查看commit在commit graph中的位置确定对应的commitID:
git log --graph --oneline $(git fsck | awk '/dangling commit/ {print $3}')
参考: http://stackoverflow.com/questions/89332/how-to-recover-a-dropped-stash-in-git
网友评论