腾讯云开发者社区 git stash clear 后的恢复

git stash clear 后的恢复

在使用git的时候不小心执行了git stash clear,把git暂存(stash)的记录全部清除了,都是还没提交的代码,一下子全丢失了,泪~,赶紧先把目前的分支代码全部硬备份到本地,防止不小心操作二次丢失。因为这个命令是直接作为commit进行提交的,会提示让输入commit的备注信息,不输入不行,我的git默认是vim的编辑器,按。命令应该也是可以的,简单测试过一次,也是可以恢复的,是直接

在使用git的时候不小心执行了git stash clear,把git暂存(stash)的记录全部清除了,都是还没提交的代码,一下子全丢失了,泪~,赶紧先把目前的分支代码全部硬备份到本地,防止不小心操作二次丢失

如何进行恢复呢?

git stash clear 之后的恢复解决方案,对git stash drop也是同样生效的

首先执行 git fsck --lost-found会出现

git stash clear 后的恢复_stash清除的恢复

只用关注 dangling commit 后面跟着的 id

然后 git show 对应的 id,查看是不是自己需要恢复的文件内容,尽量从下往上找。

git stash clear 后的恢复_stash清除的恢复_02

可以按“回车键”或者“下箭头键”查看更多的信息,确定下变更的记录是不是自己要找回的,最后按“q”退出查看

git stash clear 后的恢复_stash_03

如果是的话,找到对应的 id 之后执行 git merge <id>

因为这个命令是直接作为commit进行提交的,会提示让输入commit的备注信息,不输入不行,我的git默认是vim的编辑器,按a键进入编辑模式,输入备注,然后按Tab键退出编辑状态,输入:wq进行保存即可

然后就还原了

不过还原之后是作为一次 commit 提交到本地的,是处于commit过的,并非暂存状态,如果可以推送的话直接推送即可

如果想再回到暂存(stash)可以执行git reset HEAD^ 把commit的提交进行撤回,撤回后再变更记录里面就可以看到变更回来了

git stash clear 后的恢复_stash_04

这个时候再对变更进行git stash就可以了

其他方式:

上面执行的是git merge <id>命令进行恢复的,使用git stash apply [id]命令应该也是可以的,简单测试过一次,也是可以恢复的,是直接恢复到非commit状态的,直接可以在IDEA的变更记录可以看到的

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐

  • 浏览量 605
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献5条内容