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

如何获取文件的Git提交哈希ID?恢复文件后遗忘哈希的解决办法

找回Git文件回滚对应的提交哈希 & 文件提交哈希获取方法

没问题,我来帮你搞定这个Git的小烦恼!

一、找回你刚才checkout的那个提交哈希

你现在的情况是已经把文件回滚到旧版本,但忘了对应的提交哈希,而且git status显示文件和HEAD版本有差异。可以按以下步骤操作:

  1. 先获取当前工作区文件的内容哈希
    用git hash-object命令得到当前文件内容对应的Git对象哈希:

    git hash-object path/to/file
    

    这个命令会输出一个40位的长哈希,这是当前文件内容在Git对象库中的唯一标识。

  2. 查找包含该文件版本的所有提交
    接着用这个哈希值去遍历所有分支的提交记录,找到所有曾经包含这个文件版本的提交:

    git log --all --find-object=<刚才得到的哈希值> -- path/to/file
    

    命令执行后会列出符合条件的提交,你要找的应该是时间最近的那一个(毕竟你刚执行完checkout操作)。

小提示:如果结果里有多个提交,看提交的时间戳和提交信息,就能快速定位你之前用的那个提交啦。

二、如何获取文件的提交哈希(日常场景)

根据不同的需求,有几种常用的方式:

  • 获取文件最后一次修改的提交哈希
    如果你想知道当前HEAD分支下,该文件最后一次被修改的提交哈希,用:

    # 完整哈希
    git log -1 --format="%H" -- path/to/file
    # 短哈希(更简洁)
    git log -1 --format="%h" -- path/to/file
    
  • 获取文件在特定分支/标签下的最后提交哈希
    比如要查看dev分支里该文件的最后提交:

    git log -1 --format="%H" dev -- path/to/file
    
  • 获取文件所有历史提交的哈希
    想列出该文件所有被修改过的提交哈希(按时间倒序排列):

    git log --format="%H" -- path/to/file
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:32:17