git stash save -a 遇到的坑

最近使用git stash 的时候 把命令记错了

原本是:git stash save -u "描述"
写成了:git stash save -a "描述"
-u: 会把没有记录到的文件也保存下来(比如你新建了一个文件,但是还没有git add,stash也会把这个文件保存下来)
-a: 会把忽略的文件也保存下来(.gitignore中的)

导致在git stash pop的时候 提示

其他文件提示
XXXX.class already exists, no checkout
最后一行
Could not restore untracked files from stash

解决办法:

第一步
使用如下命令找到所有提交记录
git log --graph --all --decorate --oneline

找到你git stash save 那次提交的<sha> 

第二步
git checkout <sha>

第三步
git reset HEAD~1

第四步
git stash -u 

好了!

参考地址:https://stackoverflow.com/questions/12221842/how-to-retrieve-untracked-files-with-git-stash

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

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,631评论 1 26
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,948评论 5 147
  • 一、电脑本地初始化一个仓库 1. git init: 初始化一个电脑上本地仓库 终端进入项目目录,输入: 该命令将...
    dragon_li阅读 3,000评论 1 4
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,957评论 0 11
  • 回首一瞬似三秋, 曙光去后夕阳里。 悔却春光任蹉跎, 只是愁。 谁知雁儿南飞去, 何必空鸣千万里。 世间多少苦乐事...
    武杏树洋阅读 193评论 0 0