当前位置: 首页 > Web前端 > HTML

vscode&git:如何快速找回不小心删除的文件

时间:2023-03-28 10:51:22 HTML

背景今天出错了。在vscode的远程服务器中,切换分支时项目下所有未提交的文件都被丢弃了。所有文件在vscode、Finder、Trash中都找不到。解决方法一:如果在vscode中打开所有文件,会显示文件已被删除,此时可以保存文件。不幸的是,我关闭了大部分文件,只有一个文件没有关闭。方案二:git会缓存修改过的文件,但前提是代码之前已经提交(commit)。我还没有承诺。所以git没有缓存,看来git是没救了。解决方案三:网上查到vscode有Cache,但是在Cache目录下找不到丢失的文件。想一想git的恢复功能:Git无法帮助您在不暂存或提交的情况下恢复这些文件。这是因为这些文件还没有被添加到暂存区,Git没有办法知道这些文件的状态。最终解决方案在这种情况下,可以考虑搜索编辑器的缓存历史来寻找解决方案。还是得从vscode入手,因为是服务端vscode,仔细阅读路径/*/home/chengxinsong/.vscode-server/data/User/History中这个目录的内容。User目录下有一个History目录。文件夹更新时间接近我更改代码的时间。我查看了每个文件夹的内容。虽然文件名和我的不一样,但是文件名是扩展名是一样的。这些文件是代码的历史文件。下面每个目录对应一个文件。

我打开其中一个文件夹,里面有一个entries.json文件,我们可以看到这个修改的所有记录文件,从上到下,最后一条记录就是最近的修改。resource代表:这个文件在项目中的path路径。entries代表:这个文件的所有修改产生的临时文件。
然后在文件夹中找到这个文件,这个文件是最新修改的。
找到最新的修改,复制文件的代码内容。虽然有些麻烦,但它也是恢复代码最快、成本最低的方法。发现最后少了一个文件,还有个特殊情况,就是History文件夹下还有其他文件夹。
最终解决方案:在vscode编辑器的缓存历史中查找解决方案。希望大家在实际开发中能经常提交(commit)和缓存(stash)。如果真的忘记提交(commit)而出错(gitdiscardallchanges),可以参考本文的“编辑器的缓存历史记录”方法,帮助大家恢复误删除的文件。??感谢您关注“松宝写代码”,写的不仅仅是代码。