找回pop掉的stash

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有两种方法:

  1. git stash pop 最后会打印出pop掉的commitid值,若这个记录还存在直接使用即可。
  2. 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,668评论 1 26
  • 监测app启动时间 adb shell am start -w [packageName]/[packageNam...
    MrWang915阅读 355评论 0 0
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,957评论 0 9
  • Git 学习笔记 GitHub浏览器快捷键:t: 查找 先丢一堆图。。就是这么任性 目录Git对象说明 1.Git...
    歌白梨阅读 996评论 0 1
  • 一间小房一盏孤灯 一种心境两杯香茗 月亮还是那个月亮 人还是那个人 品味的那份心情 一半惊喜一半眼泪 风景还是那个...
    王子的夜宴阅读 219评论 1 2