git stash save -a 引发的 Could not restore untracked files from stash 问题

因为需要切换分支开发新功能,因此需要暂时储藏当前分支feature-22,git stash -h查看了下命令说明

git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
         [-u|--include-untracked] [-a|--all] [<message>]

根据提示,想当然地使用了git stash save -a "message"
在新建分支开发完提交之后,切换回feature-22分支,使用git stash apply 命令应用储藏时,提示下面异常,不能正常应用之前储藏的代码。

XXXX.class already exists, no checkout
XXXX.class already exists, no checkout
Could not restore untracked files from stash 

根据异常,查到一篇博文Could not restore untracked files from stash —— git stash -a 之后的事故处理
可能场景不太一样,按照步骤但是没有达到想要的效果,找其他的文章解决方案也和这个差不多,没找到其他的解决方案。
此时有点慌了,因为之前储藏的代码有点多,要是重写估计得撞墙。

仔细看了下错误提示,除了最后一句,都是提示XXXX.class already exists, no checkout,就想既然提示这些文件已存在,如果全删除,是不是就可以恢复了,只能死马当活马医,试试看了。

把工作空间备份之后,经过几次删除之后,git stash apply命令正常执行了,喜出望外。
查看代码,发现只恢复了git stash时修改的文件,未做修改的文件未恢复。
虽然效果不是很好,但也比没有强啊,苦中作乐吧。
然后重新拉取了代码,然后将修改的部分拷贝到新代码中,曲线救国。

处理方法总结:
1)将工作空间先备份(这点相当重要)
2)将提示存在的文件都删除
3)使用git stash apply 命令,将之前修改的文件恢复
4)重新拉取代码,将修改的部分同步到新代码中

建议储藏时使用命令: git stash save "message"

这个处理方法很垃圾,你有好方法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值