江湖救急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的主要内容,如果未能解决你的问题,请参考以下文章