江湖救急git分支强制切换后回来文件消失:文件无add和commit

Posted amcomputer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了江湖救急git分支强制切换后回来文件消失:文件无add和commit相关的知识,希望对你有一定的参考价值。

一 背景介绍

昨晚敲代码负责写dao和工具类,在A分支(建了新目录和java文件),晚上11点了想回去了,准备切换b分支看看(A分支文件无add和commit),强制切换回来后,发现A分支文件全部没了。已经晚上11点了,心想凉了。。。。。。。。。。。。。。。。。。。一个下午和晚上干的活全部没了。

然后使用git log也找不到任务记录,心里面更慌了,心想,一定恢复不了了。疯狂搜索网上各种教程,都没有用。看到师兄还在加班,心里面想想要不问问p7大佬吧,结果师兄也准备走了,说看看吧。

我简单描述了下问题,师兄看着idea,也没把握。说这个我也没有遇到过,估计只有重新写了。。。。。。。。我心里面更凉了。师兄在idea上试了试,中途还回去回了一个消息。大佬就是大佬,他也是第一次使用并找到idea神器的功能(基于stash,我前面想恢复文件,也尝试了这个命令,还是没有找到历史):shelve

二 问题解决

位置在最下方,git
然后选中自己误删文件,进行unshelve,意思是文件解除搁置,把已经删除文件解除删除(隐藏状态)回到本地。然后进行add. 和commit,就行了。晚上搞到12点才走,师兄也是第一次接触这个,互相研究了下,不得不感叹idea的强大。如果按照git思路走,我觉得我肯定凉了,这次太惊心动魄了。
我们第一次点了Restore,文件全部不见了,差点以为又误删了,心里面也是吓了一大掉,最后还是通过unshelve进行救命恢复。!!!!!!!!!!!!!!!!重点:直接点unshelve!!!!!!!

三 备注:

以下关于stash命令我都尝试过,师兄不放心我,也试了,也是没有找到删除的文件。
(常用git stash命令:

(1)git stash save “save message” : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

(2)git stash list :查看stash了哪些存储

(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@$num,比如第二个 git stash show stash@1

(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@$num -p ,比如第二个:git stash show stash@1 -p

(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@0,如果要使用其他个,git stash apply stash@$num , 比如第二个:git stash apply stash@1

(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@0,如果要应用并删除其他stash,命令:git stash pop stash@$num ,比如应用并删除第二个:git stash pop stash@1

(7)git stash drop stash@KaTeX parse error: Expected 'EOF', got '' at position 4: num̲ :丢弃stash@num存储,从列表中删除这个存储

(8)git stash clear :删除所有缓存的stash
)

以上是关于江湖救急git分支强制切换后回来文件消失:文件无add和commit的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse Git插件切换分支的时候不要Reset

git checkout 切换分支 文件无编辑权限

Git未提交代码,切换分支后,代码丢失,怎么找回

git 强制推送到master

Git分支怎么切换到远端分支

git error: unable to unlink old (Permission denied)