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

Git拉取后本地文件丢失,已提交/暂存变更能否恢复?

Git拉取后丢失本地变更的恢复方案

问题场景

本地将部分文件变更加入暂存区并完成提交,推送时系统提示需先拉取远程分支。执行git pull origin master后,本地已提交但未推送的变更、暂存的内容全部丢失。操作过程中出现的错误信息如下:

第一阶段错误

git pull origin master
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 6.55 KiB | 0 bytes/s, done.
From https://github.com/xxxxxxx/xxxxx
 * branch            master     -> FETCH_HEAD
   b713141..adcf8c4  master     -> origin/master
error: Your local changes to the following files would be overwritten by merge: LIST OF FILES

后续错误

error: Your local changes to the following files would be overwritten by merge:
        .Rproj.user/1B350229/pcs/debug-breakpoints.pper
        .Rproj.user/1B350229/pcs/files-pane.pper
        .Rproj.user/1B350229/pcs/source-pane.pper
        .Rproj.user/1B350229/pcs/windowlayoutstate.pper
        .Rproj.user/1B350229/pcs/workbench-pane.pper
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        github-git-cheat-sheet.pdf
Please move or remove them before you merge.
Aborting
Index was not unstashed.
Merge with strategy ort failed.

尝试git fsck未成功,以下是针对两类丢失内容的恢复方法:


1. 恢复已提交但未推送的变更

Git会记录所有本地提交的操作日志,哪怕分支指针被覆盖,也能通过reflog找回:

  • 执行git reflog,查看所有分支的操作记录,找到你丢失的提交条目(格式类似abcdefg HEAD@{n}: commit: 你的提交描述)
  • 若要直接将当前分支重置到该提交,执行git reset --hard <提交哈希值>
  • 若要将该提交应用到当前分支,执行git cherry-pick <提交哈希值>

2. 恢复已暂存但未提交的内容

暂存区的内容会以Git对象的形式存储在本地仓库中,可通过以下步骤找回:

  • 执行git fsck --lost-found,Git会将所有未被引用的对象导出到.git/lost-found/other目录下
  • 遍历该目录下的所有对象哈希,执行git cat-file -p <对象哈希>查看内容,匹配你丢失的暂存文件
  • 将匹配到的内容导出到对应文件:git cat-file -p <对象哈希> > 目标文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:42:39