You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何恢复本地Git项目中已提交未删除的意外丢失源文件

本地Git源文件丢失恢复方案

你的所有src源文件在第一次执行git commit时就已经完整存入本地Git对象库,全程未执行删除操作的前提下文件不会丢失,按以下步骤操作即可完整找回:

  1. 定位初始提交哈希
    在项目目录执行命令:
    git reflog
    
    在输出的记录列表里,找到提交备注为Add existing project files prior to the push to GitHub.的那条记录,复制记录开头的7位短提交哈希(格式类似f3a92c1)。

    reflog会记录本地所有HEAD指针的移动轨迹,默认保留90天内的所有本地提交记录,哪怕分支被删、切换到其他提交,记录也不会消失。

  2. 切回初始提交恢复文件
    执行命令基于找到的初始提交创建恢复分支:
    git checkout -b file-recovery <你刚才复制的提交哈希>
    
    命令执行完成后,本地工作目录里的所有src源文件就会恢复到你第一次提交时的完整状态。
  3. 正确推送到空白GitLab仓库
    之前推送失败、文件"消失"的核心原因是你误pull了其他无关仓库的提交历史,产生了不相关历史冲突,后续切到远程拉下来的无源码分支时,工作区自然只显示对应分支的文件,并不是源码被删除。按以下流程重新推送即可:
    • 清除之前配置错误的远程关联:
      git remote remove origin
      
    • 重新绑定你自己的空白GitLab仓库地址:
      git remote add origin <你的GitLab仓库完整访问地址>
      
    • 将当前恢复好文件的分支重命名为你需要的主分支名(需要用main就填main,需要用master就填master):
      git branch -M main
      
    • 首次推送到空白远程仓库,执行强制推送即可完成上传:
      git push -uf origin main
      

注意事项

  • 操作前不要在当前所在分支执行提交、合并、硬重置类操作,避免reflog记录被覆盖,按流程操作找回成功率为100%。
  • 空白远程仓库首次推送前不需要执行git pull,空仓库没有任何提交记录,pull必然会报不相关历史错误。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:39:15