Git | 如何找回本地未提交过的代码

前言

本地代码写完后没有进行git提交,就没有commit号,如何找回?本文将就此情况提供解决方案。

问题描述

半年前写的代码,没有进行git addpush操作,因为项目是由我和另一个同事共同开发的,这期间同事有改过代码,今天产品提了新需求,我就按照往日习惯,更新远程master代码,提示"本地的文件更改将被覆盖","请在合并前提交更改或将其隐藏",如下图所示:

git 复制代码
error: Your local changes to the following files would be overwritten by merge:
        dist.zip
        package.json
        src/router/index.js
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        src/api/modules/search.js
        src/assets/imgs/emptyStatus.png

然后我毫不犹豫的执行了git checkout .命令,结果导致本地未提交的代码全部丢失!暴风哭泣了!

解决思路

git没有commit,所以网上说的git refloggit loggit reset等关于git命令的操作,统统没有意义。然后就考虑编辑器是否有本地记录,于是打开编辑器查看是否有下载过Local History插件(我用的是vscode):

看到有,心里稍有安慰,于是赶紧查看左边最下方:

竟然是空的!!!

原因是: 我在进行git checkout .操作的时候,并未在vscode中打开该项目代码。

所以还得从git入手去解决,毕竟git如此成熟,不可能没有办法。

解决方案

  1. 打开项目所在的文件位置找到 .git文件夹(如图)(单个文件示例):

注:此文件一般为隐藏文件,如果打开文件夹没找到此文件,就先让隐藏文件夹显示出来,Mac的快捷键为shift + command + .

  1. 然后进入到进入到 object文件目录下:

可以按照修改日期 进行排序,例如我就需要把今天修改过的文件排在最前面。 这些文件夹下的每个文件夹,里面有可能是一个或多个文件,依旧是只看日期为今天的

  1. 在某目录下打开终端:

运行命令:git cat-file -p 文件夹名文件名,如下图所示:

回车后可看到文件 或是一些git的历史提交记录 ,每个文件的内容都不一样 ,如果回车后命令行下方有代码,如下图这样,则这部分代码就是需要恢复的文件内容,自己可以与代码做对比,查看内容是否是自己丢失的文件

注:这步操作只是恢复一个文件内容的步骤,如果文件夹比较多,则可以根据自己情况,按照文件大小进行操作,小的可以忽略不看,但是不放心的话,就没个文件都查一遍:

另:如果是windows,若是没办法直接查看文件大小的话,可以先将.git文件进行打包压缩,然后在压缩包里查看文件大小。

  1. 如果内容是自己丢失的代码,则继续执行命令git cat-file -p 文件夹名文件名 > 保存文件的路径,意思是把当前文件另存为自己指定的目录下,如:
git 复制代码
// 如果是Mac:
git cat-file -p b394b64a17cb90e2e8ef2c17e62ad36a65b6c957 > /Users/zzz/myProject/search.vue

说明:
1. /Users/zzz 指的是根目录;
2. /myProject 指的是文件夹名称,此文件必须本地存在;
3. /search.vue 指的是文件名,自己定即可。

--------------------------------------------------------------

// 如果是windows:
git cat-file -p b394b64a17cb90e2e8ef2c17e62ad36a65b6c957 > /d/myProject/search.vue

说明:
1. /d 指的是D盘(即根目录);
2. /myProject 指的是文件夹名称,此文件必须本地存在;
3. /search.vue 指的是文件名,自己定即可。

如图:

会在对应的目录下生成刚才命名的文件:

  1. 重复以上两个步骤即可。最好是一个个去找,防止遗漏,一定要先查看文件内容是否自己的文件,如果是,再另存到本地。

以上,希望对大家有帮助!

相关推荐
ChampaignWolf14 小时前
GitHub 发布全新 Copilot 独立应用,正面硬刚 Claude Code 与 Codex
github·copilot
冴羽yayujs17 小时前
GitHub 热门项目-日榜(2026-05-19)
前端·javascript·github
梦梦代码精17 小时前
LikeShop开源多端商城系统:半年使用记录
git·uni-app·github
小猴小猴1 天前
GitHub本周热门项目(2026-05-18)
github
_大学牲1 天前
从零实现自己的agent第五期:子代理实现
github·agent·ai编程
CAD老兵1 天前
一张 HTML 走天下:CAD-Viewer 首创的「离线 CAD 看图」
前端·javascript·github
ziyitty2 天前
GitHub CLI 与 Codex 项目目录映射说明
github
Soari2 天前
AI 编码智能体的“安全防弹衣”:深度拆解 agent-skills,构建百分百受信任的专业技能注册表
人工智能·网络安全·github·软件工程·aiagent·claudecode·agent-skills
淘矿人2 天前
Claude助力后端开发
java·开发语言·人工智能·python·github·php·pygame
森旺电子2 天前
白盒测试覆盖题
github