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

为何Git提交记录中无法找到已删除文件的踪迹?

关于Git中丢失已存在文件提交记录的问题

项目开发到一半时,我从仓库删除了部分文件,但本地和GitHub的提交记录里都找不到这些文件的痕迹。我确定这些文件曾存在,因为我的.md文件里还保留着它们的引用路径,比如:![](./images/postgresql/numeric_data_types.png)。

我尝试过以下命令搜索文件及其路径,但均未返回任何相关结果:

  • git log --all --full-history -- './images/postgresql/numeric_data_types.png'
  • git log --all --full-history -- '**/numeric_data_types.png'
  • git log --diff-filter=D --summary
  • git rev-list -n 1 HEAD -- ./images/postgresql/

我也通过GitHub网页手动检查了提交记录,同样没有发现这些文件的痕迹。

附上我的git配置文件:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = git@github.com:user/repo_name.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
    remote = origin
    merge = refs/heads/main

解决建议

  • 检查.gitignore文件:确认这些图片文件是否被配置为忽略项,导致从未被提交到仓库。如果是,移除对应忽略规则后可重新提交(但无法找回历史记录,仅能恢复本地残留文件)。
  • 搜索本地Git对象库:执行git fsck --lost-found查找丢失的Git对象,之后在.git/lost-found/目录下检查是否有相关文件的blob对象,通过git show <blob-id>查看内容,确认后可恢复文件。
  • 检查未推送分支与stash:用git branch -a查看所有本地/远程分支,切换到旧分支逐一检查;用git stash list查看暂存记录,尝试恢复后查看是否包含目标文件。
  • 搜索历史提交中的引用:执行git log --all --grep="numeric_data_types.png",找到引用该文件的提交,再查看该提交的文件状态。
  • 本地磁盘文件恢复:如果本地磁盘未彻底删除文件,使用文件恢复工具扫描项目所在磁盘分区,尝试找回被删除的图片文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:02:07