You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

误从Git Origin拉取代码后丢失文件的恢复方法咨询

恢复Git误拉取后丢失文件的解决方案

别慌,Git其实会记录几乎所有操作痕迹,哪怕是没推送到远程的本地提交,咱们一步步来找回你的文件:

第一步:查看Git操作日志(Reflog)

Git的reflog是绝对的救星,它会记录所有HEAD指针的变更历史,包括那些没被分支引用的临时本地提交。

  1. 打开VS Code的终端(快捷键Ctrl+/Cmd+
  2. 输入命令:
    git reflog
    
  3. 在输出结果里找你之前完成的那个本地提交——你会看到类似这样的条目:
    a1b2c3d HEAD@{3}: commit: 新增XX功能及相关文件
    
    这里的a1b2c3d就是包含你所有新增文件的提交哈希值,把它记下来。

第二步:恢复目标提交的内容

方式一:直接切换到目标提交并备份

  1. 用刚才记下的哈希值切换到那个提交:
    git checkout a1b2c3d
    
    这时你的工作区就会立刻回到那个提交的状态,所有被删除的新增文件都会回来。
  2. 你可以直接把这些文件复制到项目外的安全位置,或者创建一个新分支永久保存这个状态:
    git branch recovery-branch a1b2c3d
    
  3. 切回你原来的工作分支(比如main/master):
    git checkout main
    
  4. 把recovery-branch里的内容合并回当前分支:
    git merge recovery-branch
    

方式二:如果找不到提交记录,查找孤立文件对象

如果reflog里没找到目标提交(比如提交没完全完成就被覆盖),试试这个命令查找所有未被Git引用的孤立文件:

git fsck --lost-found

这个命令会把所有孤立的文件内容(Git的blob对象)放到项目根目录的.git/lost-found/blobs文件夹里。你可以用cat命令查看这些文件的内容,比如:

cat .git/lost-found/blobs/xxxxxx

找到对应的文件后,把它复制出来并重命名即可。

额外提示:避免再次踩坑

  • 下次遇到push失败时,先看终端里的错误提示(比如权限问题、远程分支冲突),不要急于拉取代码
  • VS Code的Git面板里可以查看本地提交历史,操作前先确认当前分支和提交状态

内容的提问来源于stack exchange,提问作者Dwaipayan Vidyanta

火山引擎 最新活动