Bug: git stash恢复误drop的提交
前几天在写ut时突然需要通过本地代码临时出一个包,但是本地ut又不想直接作为一个commit提交,所以为了省事就将ut的代码暂时stash起来。出完包后想apply stash,但是手误操作点成了drop stash,丢失了之前stash的代码。后来通过一顿猛操作摸索,成功恢复丢失的代码。
1 stash本地代码
这是我本地修改的代码,现在我通过goland将它stash起来
选中目录,右键 - git - Stash Changes
为此次stash添加一个备注信息:
create stash成功之后,我们开始的修改就都没了:
2 drop stash
本地出完包后,想要应用之前stash的代码:
- 选中对应目录 - Git - Unstash Changes
原本我们应该选中之前的stash点击右下角的apply stash,但是由于误操作,点成了右侧的drop,导致之前的stash丢失。
3 恢复之前drop的stash
3.1 通过命令找到之前的stash id
可视化展示git提交信息:git log --graph --decorate --pretty=oneline --abbrev-commit --all $(git fsck --no-reflogs | grep commit | cut -d' ' -f3)
命令行执行下面命令,图形化展示git提交信息:
bash
git log --graph --decorate --pretty=oneline --abbrev-commit --all $(git fsck --no-reflogs | grep commit | cut -d' ' -f3)
3.2 git stash apply commitID
在命令行执行下面命令,应用丢失的stash:
bash
git stash apply b77f01c